diff options
author | Jesper Schmitz Mouridsen <jsm@FreeBSD.org> | 2024-03-22 21:27:56 +0100 |
---|---|---|
committer | Jesper Schmitz Mouridsen <jsm@FreeBSD.org> | 2024-03-22 21:43:17 +0100 |
commit | 860821402c33fcba31564fbd99352783ce88994d (patch) | |
tree | 1755555951f101b937d456a2c748ee861e9880a1 /www/librewolf/files/patch-bug1876366 | |
parent | deskutils/kdeconnect-kde: fix broken patch for the sftp_mounter (diff) |
www/librewolf: Update to 123.0-1
switch to unity-menubar from archlinux,
since it is not currently maintained by upstream.
PR: 277807
Approved by: freebsd@sysctl.cz (maintainer)
Diffstat (limited to 'www/librewolf/files/patch-bug1876366')
-rw-r--r-- | www/librewolf/files/patch-bug1876366 | 188 |
1 files changed, 188 insertions, 0 deletions
diff --git a/www/librewolf/files/patch-bug1876366 b/www/librewolf/files/patch-bug1876366 new file mode 100644 index 000000000000..a6f39ffabab8 --- /dev/null +++ b/www/librewolf/files/patch-bug1876366 @@ -0,0 +1,188 @@ +commit 54d21b7398dc1a8ff22a987c660d400347b144a9 +Author: Christoph Moench-Tegeder <cmt@burggraben.net> +Date: Sun Feb 11 19:11:15 2024 +0100 + + Bug 1876366: many X11 cursors stopped working + + revert switch to newer gdk interface, as it broke cursor shape + switching and living with the default cursor only is no fun. + + Revert "Bug 1872961 [Linux] Use pointer cursor for hyperlinks r=emilio" + + This reverts commit 0574d0cdc438e4b0ce588f1652af802a0357f255. + + Revert "Bug 1871863 - Port from GdkCursorType to gdk_cursor_new_from_name. r=rmader,stransky" + + This reverts commit 5dfa42970a9577f0ac4e0992d9ec58c691e9bef6. + +diff --git widget/gtk/nsWindow.cpp widget/gtk/nsWindow.cpp +index a011dcc51fdb..28100db36d89 100644 +--- widget/gtk/nsWindow.cpp ++++ widget/gtk/nsWindow.cpp +@@ -7797,53 +7797,61 @@ static GdkCursor* get_gtk_cursor(nsCursor aCursor) { + + GdkDisplay* defaultDisplay = gdk_display_get_default(); + ++ // The strategy here is to use standard GDK cursors, and, if not available, ++ // load by standard name with gdk_cursor_new_from_name. ++ // Spec is here: http://www.freedesktop.org/wiki/Specifications/cursor-spec/ + switch (aCursor) { + case eCursor_standard: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "default"); ++ gdkcursor = gdk_cursor_new_for_display(defaultDisplay, GDK_LEFT_PTR); + break; + case eCursor_wait: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "wait"); ++ gdkcursor = gdk_cursor_new_for_display(defaultDisplay, GDK_WATCH); + break; + case eCursor_select: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "text"); ++ gdkcursor = gdk_cursor_new_for_display(defaultDisplay, GDK_XTERM); + break; + case eCursor_hyperlink: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "pointer"); ++ gdkcursor = gdk_cursor_new_for_display(defaultDisplay, GDK_HAND2); + break; + case eCursor_n_resize: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "n-resize"); ++ gdkcursor = gdk_cursor_new_for_display(defaultDisplay, GDK_TOP_SIDE); + break; + case eCursor_s_resize: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "s-resize"); ++ gdkcursor = gdk_cursor_new_for_display(defaultDisplay, GDK_BOTTOM_SIDE); + break; + case eCursor_w_resize: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "w-resize"); ++ gdkcursor = gdk_cursor_new_for_display(defaultDisplay, GDK_LEFT_SIDE); + break; + case eCursor_e_resize: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "e-resize"); ++ gdkcursor = gdk_cursor_new_for_display(defaultDisplay, GDK_RIGHT_SIDE); + break; + case eCursor_nw_resize: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "nw-resize"); ++ gdkcursor = ++ gdk_cursor_new_for_display(defaultDisplay, GDK_TOP_LEFT_CORNER); + break; + case eCursor_se_resize: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "se-resize"); ++ gdkcursor = ++ gdk_cursor_new_for_display(defaultDisplay, GDK_BOTTOM_RIGHT_CORNER); + break; + case eCursor_ne_resize: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "ne-resize"); ++ gdkcursor = ++ gdk_cursor_new_for_display(defaultDisplay, GDK_TOP_RIGHT_CORNER); + break; + case eCursor_sw_resize: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "sw-resize"); ++ gdkcursor = ++ gdk_cursor_new_for_display(defaultDisplay, GDK_BOTTOM_LEFT_CORNER); + break; + case eCursor_crosshair: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "crosshair"); ++ gdkcursor = gdk_cursor_new_for_display(defaultDisplay, GDK_CROSSHAIR); + break; + case eCursor_move: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "move"); ++ gdkcursor = gdk_cursor_new_for_display(defaultDisplay, GDK_FLEUR); + break; + case eCursor_help: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "help"); ++ gdkcursor = ++ gdk_cursor_new_for_display(defaultDisplay, GDK_QUESTION_ARROW); + break; +- case eCursor_copy: ++ case eCursor_copy: // CSS3 + gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "copy"); + if (!gdkcursor) newType = MOZ_CURSOR_COPY; + break; +@@ -7856,14 +7864,18 @@ static GdkCursor* get_gtk_cursor(nsCursor aCursor) { + if (!gdkcursor) newType = MOZ_CURSOR_CONTEXT_MENU; + break; + case eCursor_cell: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "cell"); ++ gdkcursor = gdk_cursor_new_for_display(defaultDisplay, GDK_PLUS); + break; ++ // Those two aren’t standardized. Trying both KDE’s and GNOME’s names + case eCursor_grab: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "grab"); ++ gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "openhand"); + if (!gdkcursor) newType = MOZ_CURSOR_HAND_GRAB; + break; + case eCursor_grabbing: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "grabbing"); ++ gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "closedhand"); ++ if (!gdkcursor) { ++ gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "grabbing"); ++ } + if (!gdkcursor) newType = MOZ_CURSOR_HAND_GRABBING; + break; + case eCursor_spinning: +@@ -7880,6 +7892,9 @@ static GdkCursor* get_gtk_cursor(nsCursor aCursor) { + break; + case eCursor_not_allowed: + gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "not-allowed"); ++ if (!gdkcursor) { // nonstandard, yet common ++ gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "crossed_circle"); ++ } + if (!gdkcursor) newType = MOZ_CURSOR_NOT_ALLOWED; + break; + case eCursor_no_drop: +@@ -7900,35 +7915,46 @@ static GdkCursor* get_gtk_cursor(nsCursor aCursor) { + } + break; + case eCursor_all_scroll: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "move"); ++ gdkcursor = gdk_cursor_new_for_display(defaultDisplay, GDK_FLEUR); + break; + case eCursor_nesw_resize: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "nesw-resize"); ++ gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "size_bdiag"); + if (!gdkcursor) newType = MOZ_CURSOR_NESW_RESIZE; + break; + case eCursor_nwse_resize: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "nwse-resize"); ++ gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "size_fdiag"); + if (!gdkcursor) newType = MOZ_CURSOR_NWSE_RESIZE; + break; + case eCursor_ns_resize: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "ns-resize"); ++ gdkcursor = ++ gdk_cursor_new_for_display(defaultDisplay, GDK_SB_V_DOUBLE_ARROW); + break; + case eCursor_ew_resize: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "ew-resize"); ++ gdkcursor = ++ gdk_cursor_new_for_display(defaultDisplay, GDK_SB_H_DOUBLE_ARROW); + break; ++ // Here, two better fitting cursors exist in some cursor themes. Try those ++ // first + case eCursor_row_resize: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "row-resize"); ++ gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "split_v"); ++ if (!gdkcursor) { ++ gdkcursor = ++ gdk_cursor_new_for_display(defaultDisplay, GDK_SB_V_DOUBLE_ARROW); ++ } + break; + case eCursor_col_resize: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "col-resize"); ++ gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "split_h"); ++ if (!gdkcursor) { ++ gdkcursor = ++ gdk_cursor_new_for_display(defaultDisplay, GDK_SB_H_DOUBLE_ARROW); ++ } + break; + case eCursor_none: +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "none"); +- if (!gdkcursor) newType = MOZ_CURSOR_NONE; ++ newType = MOZ_CURSOR_NONE; + break; + default: + NS_ASSERTION(aCursor, "Invalid cursor type"); +- gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "default"); ++ gdkcursor = gdk_cursor_new_for_display(defaultDisplay, GDK_LEFT_PTR); + break; + } + |