Author: renodr
Date: Mon Oct 12 14:31:03 2020
New Revision: 4202

Log:
Add mutter upstream fixes patch

Added:
   trunk/mutter/mutter-3.38.1-upstream_fixes-1.patch

Added: trunk/mutter/mutter-3.38.1-upstream_fixes-1.patch
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ trunk/mutter/mutter-3.38.1-upstream_fixes-1.patch   Mon Oct 12 14:31:03 
2020        (r4202)
@@ -0,0 +1,144 @@
+Submitted By:            Douglas R. Reno <renodr at linuxfromscratch dot org>
+Date:                    2020-10-12
+Initial Package Version: 3.38.1
+Upstream Status:         Applied
+Origin:                  Upstream + Self
+Description:             Fixes a build system issue related to build ordering
+                         (having to do with generated headers), as well as
+                         fixes a potential crash with the latest version of
+                         libinput. This also factors in the upstream fix for
+                         window scaling on Wayland, with programs such as
+                         gnome-terminal.
+
+diff -Naurp mutter-3.38.1.orig/src/backends/meta-backend-private.h 
mutter-3.38.1/src/backends/meta-backend-private.h
+--- mutter-3.38.1.orig/src/backends/meta-backend-private.h     2020-10-05 
13:05:31.613274600 -0500
++++ mutter-3.38.1/src/backends/meta-backend-private.h  2020-10-12 
11:30:10.176509133 -0500
+@@ -42,10 +42,6 @@
+ #include "backends/meta-settings-private.h"
+ #include "core/util-private.h"
+ 
+-#ifdef HAVE_REMOTE_DESKTOP
+-#include "backends/meta-remote-desktop.h"
+-#endif
+-
+ #define DEFAULT_XKB_RULES_FILE "evdev"
+ #define DEFAULT_XKB_MODEL "pc105+inet"
+ 
+diff -Naurp mutter-3.38.1.orig/src/backends/meta-backend-types.h 
mutter-3.38.1/src/backends/meta-backend-types.h
+--- mutter-3.38.1.orig/src/backends/meta-backend-types.h       2020-10-05 
13:05:31.613274600 -0500
++++ mutter-3.38.1/src/backends/meta-backend-types.h    2020-10-12 
11:30:42.397508778 -0500
+@@ -59,4 +59,8 @@ typedef struct _MetaScreenCastStream Met
+ 
+ typedef struct _MetaWaylandCompositor MetaWaylandCompositor;
+ 
++#ifdef HAVE_REMOTE_DESKTOP
++typedef struct _MetaRemoteDesktop MetaRemoteDesktop;
++#endif
++
+ #endif /* META_BACKEND_TYPE_H */
+diff -Naurp mutter-3.38.1.orig/src/backends/native/meta-seat-native.c 
mutter-3.38.1/src/backends/native/meta-seat-native.c
+--- mutter-3.38.1.orig/src/backends/native/meta-seat-native.c  2020-10-05 
13:05:31.646273900 -0500
++++ mutter-3.38.1/src/backends/native/meta-seat-native.c       2020-10-12 
11:36:10.128505168 -0500
+@@ -1485,31 +1485,41 @@ process_base_event (MetaSeatNative
+                     struct libinput_event *event)
+ {
+   ClutterInputDevice *device = NULL;
+-  ClutterEvent *device_event;
++  ClutterEvent *device_event = NULL;
+   struct libinput_device *libinput_device;
++  ClutterStage *stage;
++
++  stage = meta_seat_native_get_stage (seat);
+ 
+   switch (libinput_event_get_type (event))
+     {
+     case LIBINPUT_EVENT_DEVICE_ADDED:
+       libinput_device = libinput_event_get_device (event);
+-
+       device = evdev_add_device (seat, libinput_device);
+-      device_event = clutter_event_new (CLUTTER_DEVICE_ADDED);
+-      clutter_event_set_device (device_event, device);
++      
++      if (stage)
++      {
++         device_event = clutter_event_new (CLUTTER_DEVICE_ADDED);
++         clutter_event_set_device (device_event, device);
++      }
+       break;
+ 
+     case LIBINPUT_EVENT_DEVICE_REMOVED:
+       libinput_device = libinput_event_get_device (event);
+-
+       device = libinput_device_get_user_data (libinput_device);
+-      device_event = clutter_event_new (CLUTTER_DEVICE_REMOVED);
+-      clutter_event_set_device (device_event, device);
++      
++      if (stage)
++      {
++         device_event = clutter_event_new (CLUTTER_DEVICE_REMOVED);
++         clutter_event_set_device (device_event, device);
++      }
++
+       evdev_remove_device (seat,
+                            META_INPUT_DEVICE_NATIVE (device));
+       break;
+ 
+     default:
+-      device_event = NULL;
++      break;
+     }
+ 
+   if (device_event)
+@@ -2861,6 +2871,16 @@ meta_seat_native_set_stage (MetaSeatNati
+       ClutterInputDevice *device = l->data;
+ 
+       _clutter_input_device_set_stage (device, stage);
++
++      if (clutter_input_device_get_device_mode (device) == 
CLUTTER_INPUT_MODE_PHYSICAL)
++      {
++         ClutterEvent *device_event;
++
++         device_event = clutter_event_new (CLUTTER_DEVICE_ADDED);
++         clutter_event_set_device (device_event, device);
++         device_event->device.stage = stage;
++         queue_event (device_event);
++      }
+     }
+ }
+ 
+diff -Naurp mutter-3.38.1.orig/src/wayland/meta-window-wayland.c 
mutter-3.38.1/src/wayland/meta-window-wayland.c
+--- mutter-3.38.1.orig/src/wayland/meta-window-wayland.c       2020-10-05 
13:05:31.737271500 -0500
++++ mutter-3.38.1/src/wayland/meta-window-wayland.c    2020-10-12 
11:40:09.205502534 -0500
+@@ -956,8 +956,32 @@ meta_window_wayland_finish_move_resize (
+     {
+       if (acked_configuration)
+         {
++          
++          int offset_x;
++          int offset_y;
++
+           rect.x = acked_configuration->x;
+           rect.y = acked_configuration->y;
++
++          offset_x = acked_configuration->width - new_geom.width;
++          offset_y = acked_configuration->height - new_geom.height;
++          switch (acked_configuration->gravity)
++          {
++             case META_GRAVITY_SOUTH:
++             case META_GRAVITY_SOUTH_WEST:
++                rect.y += offset_y;
++                break;
++             case META_GRAVITY_EAST:
++             case META_GRAVITY_NORTH_EAST:
++                rect.x += offset_x;
++                break;
++             case META_GRAVITY_SOUTH_EAST:
++                rect.x += offset_x;
++                rect.y += offset_y;
++                break;
++             default:
++                break;
++          }
+         }
+     }
+ 
-- 
http://lists.linuxfromscratch.org/listinfo/patches
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to