You've already forked macports-ports
mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
gtk3: drop old patch, backport upstream focus patch
This commit is contained in:
+6
-5
@@ -12,7 +12,7 @@ name gtk3
|
||||
conflicts gtk3-devel
|
||||
set my_name gtk3
|
||||
version 3.24.52
|
||||
revision 0
|
||||
revision 1
|
||||
epoch 1
|
||||
|
||||
categories gnome x11
|
||||
@@ -68,7 +68,8 @@ compiler.cxx_standard 2011
|
||||
legacysupport.newest_darwin_requires_legacy 10
|
||||
|
||||
# Quartz patch to fix QuartzCore linking and compiling with 10.11
|
||||
# Upstream merge request: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4298
|
||||
# Upstreamed merge request: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4298
|
||||
# Needed due to: https://gitlab.gnome.org/GNOME/gtk/-/commit/df94d0168d1ee7494cd4349eb426abf0c5e03fc7
|
||||
patchfiles-append patch-quartz-calayer-contentsformat.diff
|
||||
|
||||
# Quartz patch to make CoreGraphics optional; not available for 10.7 and earlier
|
||||
@@ -86,9 +87,9 @@ patchfiles-append patch-sincos.diff
|
||||
# *NOT* merged merge request: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/8136
|
||||
patchfiles-append patch-gtk-menu-crash.diff
|
||||
|
||||
# Upstream patch
|
||||
# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/8342
|
||||
patchfiles-append patch-gtk-menu-scale.diff
|
||||
# Upstream patch (fixes lack of focus)
|
||||
# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/9951
|
||||
patchfiles-append patch-focus.patch
|
||||
|
||||
# gtk3 +quartz uses instancetype which is not available
|
||||
# before approximately Xcode 4.6 (#49391)
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
diff --git gdk/quartz/gdkwindow-quartz.c gdk/quartz/gdkwindow-quartz.c
|
||||
index 1405a93c22e..672103f7bd6 100644
|
||||
--- gdk/quartz/gdkwindow-quartz.c
|
||||
+++ gdk/quartz/gdkwindow-quartz.c
|
||||
@@ -1164,15 +1164,8 @@ gdk_window_quartz_show (GdkWindow *window, gboolean already_mapped)
|
||||
make_key = (window->accept_focus && focus_on_map &&
|
||||
window->window_type != GDK_WINDOW_TEMP);
|
||||
|
||||
- /* If window is already mapped and visible, skip showAndMakeKey to avoid
|
||||
- * spurious resignMain/becomeMain notifications that cause focus fighting.
|
||||
- * See https://gitlab.gnome.org/GNOME/gimp/-/issues/14901
|
||||
- */
|
||||
- if (!GDK_WINDOW_IS_MAPPED (window) || ![impl->toplevel isVisible])
|
||||
- {
|
||||
- [(GdkQuartzNSWindow*)impl->toplevel showAndMakeKey:make_key];
|
||||
- clear_toplevel_order ();
|
||||
- }
|
||||
+ [(GdkQuartzNSWindow*)impl->toplevel showAndMakeKey:make_key];
|
||||
+ clear_toplevel_order ();
|
||||
|
||||
_gdk_quartz_events_send_map_event (window);
|
||||
}
|
||||
--
|
||||
GitLab
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
diff --git gdk/quartz/gdkwindow-quartz.c gdk/quartz/gdkwindow-quartz.c
|
||||
index 5d6d522846..df2a8d051e 100644
|
||||
--- gdk/quartz/gdkwindow-quartz.c
|
||||
+++ gdk/quartz/gdkwindow-quartz.c
|
||||
@@ -1185,8 +1185,41 @@ gdk_window_quartz_show (GdkWindow *window, gboolean already_mapped)
|
||||
clear_toplevel_order ();
|
||||
|
||||
_gdk_quartz_events_send_map_event (window);
|
||||
+
|
||||
+ /* Fix for menu height scaling on standard DPI monitors in mixed DPI environments */
|
||||
+ if (window->window_type == GDK_WINDOW_TEMP && impl->toplevel)
|
||||
+ {
|
||||
+ GdkDisplay *display = gdk_window_get_display(window);
|
||||
+ GdkMonitor *monitor = gdk_display_get_monitor_at_window(display, window);
|
||||
+ gint scale_factor = gdk_monitor_get_scale_factor(monitor);
|
||||
+
|
||||
+ /* Only fix on low-DPI monitors */
|
||||
+ if (scale_factor == 1)
|
||||
+ {
|
||||
+ if (!g_object_get_data (G_OBJECT (window), "quartz-menu-height-fixed"))
|
||||
+ {
|
||||
+ NSWindow *nswindow = impl->toplevel;
|
||||
+ NSRect frame = [nswindow frame];
|
||||
+ NSView *contentView = [nswindow contentView];
|
||||
+
|
||||
+ /* Apply a modest adjustment to compensate for the 1/4 height issue */
|
||||
+ /* Using a tiny multiplier is enough since macOS corrects itself after first display */
|
||||
+ frame.size.height *= 1.01;
|
||||
+
|
||||
+ /* Resize the window with animation disabled */
|
||||
+ [nswindow setFrame:frame display:YES animate:NO];
|
||||
+
|
||||
+ /* Force layout update */
|
||||
+ [contentView setNeedsDisplay:YES];
|
||||
+
|
||||
+ /* Mark as fixed */
|
||||
+ g_object_set_data (G_OBJECT (window), "quartz-menu-height-fixed",
|
||||
+ GINT_TO_POINTER (TRUE));
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
- else
|
||||
+ else
|
||||
{
|
||||
[impl->view setHidden:NO];
|
||||
}
|
||||
Reference in New Issue
Block a user