--- xfwm4-4.13.1.org/src/events.c 2018-07-29 15:08:54.000000000 +0200 +++ xfwm4-4.13.1/src/events.c 2019-01-26 20:11:54.327579711 +0100 @@ -1310,7 +1310,23 @@ static eventFilterStatus handleConfigureNotify (DisplayInfo *display_info, XConfigureEvent * ev) { + ScreenInfo *screen_info; TRACE ("entering"); + + /* TODO only on certain types of events */ + screen_info = myDisplayGetScreenFromRoot (display_info, ev->event); + + if (screen_info) + { + /* + int width, height; + width = WidthOfScreen(screen_info->xscreen); + height = HeightOfScreen(screen_info->xscreen); + g_info("%s width=%d height=%d", __FUNCTION__, width, height); + */ + myScreenComputeSize(screen_info); + /* TODO handle size change similar to size_changed_cb() or monitors_changed_cb() */ + } return EVENT_FILTER_PASS; } @@ -2766,6 +2782,7 @@ static void size_changed_cb(GdkScreen *gscreen, gpointer data) { + g_info("%s", __FUNCTION__); ScreenInfo *screen_info; DisplayInfo *display_info; gboolean size_changed; @@ -2787,6 +2804,7 @@ } size_changed = myScreenComputeSize (screen_info); + g_info("%s size_changed=%i", __FUNCTION__, size_changed); if (size_changed) { myScreenInvalidateMonitorCache (screen_info); @@ -2811,6 +2829,7 @@ static void monitors_changed_cb(GdkScreen *gscreen, gpointer data) { + g_info("%s", __FUNCTION__); ScreenInfo *screen_info; DisplayInfo *display_info; gint previous_num_monitors; @@ -2842,6 +2861,7 @@ myScreenInvalidateMonitorCache (screen_info); myScreenRebuildMonitorIndex (screen_info); size_changed = myScreenComputeSize (screen_info); + g_info("%s size_changed=%i", __FUNCTION__, size_changed); if (size_changed || (screen_info->num_monitors != previous_num_monitors)) {