[gtk/gtk-3-24: 1/2] macOS: Fix GdkScreen::monitors-changed
- From: John Ralls <jralls src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/gtk-3-24: 1/2] macOS: Fix GdkScreen::monitors-changed
- Date: Mon, 15 Jul 2019 21:03:48 +0000 (UTC)
commit abaf682870dcd1956dafbb6e5428c573e4dc7b9a
Author: James Westman <flyingpimonster flyingpimonster net>
Date: Sun Jul 14 17:28:34 2019 -0500
macOS: Fix GdkScreen::monitors-changed
This signal was not being emitted on macOS, a bug introduced in 941f3c38.
`emit_monitors_changed` was never set to TRUE, so the signal was never
emitted. `emit_monitors_changed` has now been removed, because its
functionality was moved to GdkDisplay.
In addition, kCGDisplayDesktopShapeChangedFlag was removed from the list of
flags that indicate a new/reconfigured monitor, because monitor removals also
include this flag, which caused removed monitors to not be removed from
GdkDisplay.
Fixes #2004.
gdk/quartz/gdkdisplay-quartz.c | 4 ++--
gdk/quartz/gdkscreen-quartz.c | 7 +------
2 files changed, 3 insertions(+), 8 deletions(-)
---
diff --git a/gdk/quartz/gdkdisplay-quartz.c b/gdk/quartz/gdkdisplay-quartz.c
index 800f6edae1..0cce0d0250 100644
--- a/gdk/quartz/gdkdisplay-quartz.c
+++ b/gdk/quartz/gdkdisplay-quartz.c
@@ -365,8 +365,8 @@ display_reconfiguration_callback (CGDirectDisplayID cg_display,
return;
if (flags & (kCGDisplayMovedFlag | kCGDisplayAddFlag | kCGDisplayEnabledFlag |
- kCGDisplaySetMainFlag | kCGDisplayDesktopShapeChangedFlag |
- kCGDisplayMirrorFlag | kCGDisplayUnMirrorFlag))
+ kCGDisplaySetMainFlag | kCGDisplayMirrorFlag |
+ kCGDisplayUnMirrorFlag))
{
GdkQuartzMonitor *monitor = NULL;
guint index;
diff --git a/gdk/quartz/gdkscreen-quartz.c b/gdk/quartz/gdkscreen-quartz.c
index ed2a30491a..848ad6a31f 100644
--- a/gdk/quartz/gdkscreen-quartz.c
+++ b/gdk/quartz/gdkscreen-quartz.c
@@ -90,7 +90,6 @@ gdk_quartz_screen_init (GdkQuartzScreen *quartz_screen)
/* The first monitors-changed should have fired already. */
_gdk_screen_set_resolution (screen, dpi);
gdk_quartz_screen_calculate_layout (quartz_screen, NULL);
- quartz_screen->emit_monitors_changed = FALSE;
}
static void
@@ -185,11 +184,7 @@ gdk_quartz_screen_reconfigure (GdkQuartzDisplay *display, GdkQuartzScreen *scree
_gdk_quartz_screen_update_window_sizes (GDK_SCREEN (screen));
- if (screen->emit_monitors_changed)
- {
- g_signal_emit_by_name (screen, "monitors-changed");
- screen->emit_monitors_changed = FALSE;
- }
+ g_signal_emit_by_name (screen, "monitors-changed");
if (width != gdk_screen_get_width (GDK_SCREEN (screen))
|| height != gdk_screen_get_height (GDK_SCREEN (screen)))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]