[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Git][debian-mate-team/marco][master] 2 commits: debian/patches: Add 0001_check-availability-of-compositing-1.patch and...



Title: GitLab

Mike Gabriel pushed to branch master at Debian and Ubuntu MATE Packaging Team / marco

Commits:

  • 0f6ecbf7
    by Mike Gabriel at 2023-08-19T21:31:16+02:00
    debian/patches: Add 0001_check-availability-of-compositing-1.patch and 0002_check-availability-of-compositing-2.patch. Check that compositing is not only requested, but also available.
    
  • 7f77ea83
    by Mike Gabriel at 2023-08-19T21:35:07+02:00
    upload to unstable (debian/1.26.2-2)
    

4 changed files:

Changes:

  • debian/changelog
    1
    +marco (1.26.2-2) unstable; urgency=medium
    
    2
    +
    
    3
    +  * debian/patches:
    
    4
    +    + Add 0001_check-availability-of-compositing-1.patch and
    
    5
    +      0002_check-availability-of-compositing-2.patch. Check that compositing
    
    6
    +      is not only requested, but also available.
    
    7
    +
    
    8
    +      Enabling code that is supposed to be used in compositing conditions is
    
    9
    +      harmful if compositing is not actually available. Just checking the
    
    10
    +      preference is not enough to make sure that compositing is available -
    
    11
    +      the X server might be missing crucial extensions for compositing to
    
    12
    +      work, which in turn correctly disables the internal compositor.
    
    13
    +
    
    14
    +      The end result is graphical issues like black borders around windows in
    
    15
    +      such situations.
    
    16
    +
    
    17
    +      Make sure that compositing is both requested AND available to fix this
    
    18
    +      bug.
    
    19
    +
    
    20
    +      This resolves an annoying issue when running MATE desktop in X2Go
    
    21
    +      sessions with the x2goagent (nx-libs) Xserver backend.
    
    22
    +
    
    23
    + -- Mike Gabriel <sunweaver@debian.org>  Sat, 19 Aug 2023 21:31:53 +0200
    
    24
    +
    
    1 25
     marco (1.26.2-1) unstable; urgency=medium
    
    2 26
     
    
    3 27
       * New upstream release.
    

  • debian/patches/0001_check-availability-of-compositing-1.patch
    1
    +From 7db333cd008d9965dacb6490120c74394d1d5590 Mon Sep 17 00:00:00 2001
    
    2
    +From: Mihai Moldovan <ionic@ionic.de>
    
    3
    +Date: Fri, 28 Jul 2023 20:24:57 +0200
    
    4
    +Subject: [PATCH] ui/frames: check that compositing is not only requested, but
    
    5
    + also available.
    
    6
    +
    
    7
    +Enabling code that is supposed to be used in compositing conditions is
    
    8
    +harmful if compositing is not actually available. Just checking the
    
    9
    +preference is not enough to make sure that compositing is available -
    
    10
    +the X server might be missing crucial extensions for compositing to
    
    11
    +work, which in turn correctly disables the internal compositor.
    
    12
    +
    
    13
    +The end result is graphical issues like black borders around windows in
    
    14
    +such situations.
    
    15
    +
    
    16
    +Make sure that compositing is both requested AND available to fix this
    
    17
    +bug.
    
    18
    +---
    
    19
    + src/core/frame.c |  2 ++
    
    20
    + src/include/ui.h | 12 +++++++-----
    
    21
    + src/ui/frames.c  | 16 ++++++++++------
    
    22
    + src/ui/frames.h  | 12 +++++++-----
    
    23
    + src/ui/ui.c      | 13 +++++++------
    
    24
    + 5 files changed, 33 insertions(+), 22 deletions(-)
    
    25
    +
    
    26
    +diff --git a/src/core/frame.c b/src/core/frame.c
    
    27
    +index 957f6c762..e1eec2a40 100644
    
    28
    +--- a/src/core/frame.c
    
    29
    ++++ b/src/core/frame.c
    
    30
    +@@ -152,6 +152,7 @@ meta_window_ensure_frame (MetaWindow *window)
    
    31
    + 
    
    32
    +   /* Shape mask */
    
    33
    +   meta_ui_apply_frame_shape (frame->window->screen->ui,
    
    34
    ++                             frame->window->display,
    
    35
    +                              frame->xwindow,
    
    36
    +                              frame->rect.width,
    
    37
    +                              frame->rect.height,
    
    38
    +@@ -325,6 +326,7 @@ update_shape (MetaFrame *frame)
    
    39
    +   if (frame->need_reapply_frame_shape)
    
    40
    +     {
    
    41
    +       meta_ui_apply_frame_shape (frame->window->screen->ui,
    
    42
    ++                                 frame->window->display,
    
    43
    +                                  frame->xwindow,
    
    44
    +                                  frame->rect.width,
    
    45
    +                                  frame->rect.height,
    
    46
    +diff --git a/src/include/ui.h b/src/include/ui.h
    
    47
    +index c02e78a21..9d95e37af 100644
    
    48
    +--- a/src/include/ui.h
    
    49
    ++++ b/src/include/ui.h
    
    50
    +@@ -26,6 +26,7 @@
    
    51
    + 
    
    52
    + /* Don't include gtk.h or gdk.h here */
    
    53
    + #include "common.h"
    
    54
    ++#include "types.h"
    
    55
    + #include <X11/Xlib.h>
    
    56
    + #include <X11/Xutil.h>
    
    57
    + #include <glib.h>
    
    58
    +@@ -91,11 +92,12 @@ void meta_ui_map_frame   (MetaUI *ui,
    
    59
    + void meta_ui_unmap_frame (MetaUI *ui,
    
    60
    +                           Window  xwindow);
    
    61
    + 
    
    62
    +-void meta_ui_apply_frame_shape  (MetaUI  *ui,
    
    63
    +-                                 Window   xwindow,
    
    64
    +-                                 int      new_window_width,
    
    65
    +-                                 int      new_window_height,
    
    66
    +-                                 gboolean window_has_shape);
    
    67
    ++void meta_ui_apply_frame_shape  (MetaUI      *ui,
    
    68
    ++                                 MetaDisplay *display,
    
    69
    ++                                 Window       xwindow,
    
    70
    ++                                 int          new_window_width,
    
    71
    ++                                 int          new_window_height,
    
    72
    ++                                 gboolean     window_has_shape);
    
    73
    + 
    
    74
    + cairo_region_t *meta_ui_get_frame_bounds (MetaUI *ui,
    
    75
    +                                           Window  xwindow,
    
    76
    +diff --git a/src/ui/frames.c b/src/ui/frames.c
    
    77
    +index d65dac82d..ad7e10c8f 100644
    
    78
    +--- a/src/ui/frames.c
    
    79
    ++++ b/src/ui/frames.c
    
    80
    +@@ -37,6 +37,7 @@
    
    81
    + #include "theme.h"
    
    82
    + #include "prefs.h"
    
    83
    + #include "ui.h"
    
    84
    ++#include "display.h"
    
    85
    + 
    
    86
    + #ifdef HAVE_SHAPE
    
    87
    + #include <X11/extensions/shape.h>
    
    88
    +@@ -1063,11 +1064,12 @@ get_frame_region (int window_width,
    
    89
    + #endif /* HAVE_SHAPE */
    
    90
    + 
    
    91
    + void
    
    92
    +-meta_frames_apply_shapes (MetaFrames *frames,
    
    93
    +-                          Window      xwindow,
    
    94
    +-                          int         new_window_width,
    
    95
    +-                          int         new_window_height,
    
    96
    +-                          gboolean    window_has_shape)
    
    97
    ++meta_frames_apply_shapes (MetaFrames  *frames,
    
    98
    ++                          MetaDisplay *meta_display,
    
    99
    ++                          Window       xwindow,
    
    100
    ++                          int          new_window_width,
    
    101
    ++                          int          new_window_height,
    
    102
    ++                          gboolean     window_has_shape)
    
    103
    + {
    
    104
    + #ifdef HAVE_SHAPE
    
    105
    +   /* Apply shapes as if window had new_window_width, new_window_height */
    
    106
    +@@ -1095,7 +1097,9 @@ meta_frames_apply_shapes (MetaFrames *frames,
    
    107
    + 
    
    108
    +   meta_frames_calc_geometry (frames, frame, &fgeom);
    
    109
    + 
    
    110
    +-  compositing_manager = meta_prefs_get_compositing_manager ();
    
    111
    ++  compositing_manager = meta_prefs_get_compositing_manager () &&
    
    112
    ++                        meta_display &&
    
    113
    ++                        !!(meta_display_get_compositor (meta_display));
    
    114
    + 
    
    115
    +   if (!window_has_shape && compositing_manager)
    
    116
    +     return;
    
    117
    +diff --git a/src/ui/frames.h b/src/ui/frames.h
    
    118
    +index ad86ee44f..f4821e435 100644
    
    119
    +--- a/src/ui/frames.h
    
    120
    ++++ b/src/ui/frames.h
    
    121
    +@@ -28,6 +28,7 @@
    
    122
    + #include <gdk/gdkx.h>
    
    123
    + #include "common.h"
    
    124
    + #include "theme.h"
    
    125
    ++#include "types.h"
    
    126
    + 
    
    127
    + typedef enum
    
    128
    + {
    
    129
    +@@ -135,11 +136,12 @@ void meta_frames_get_borders (MetaFrames       *frames,
    
    130
    +                               Window            xwindow,
    
    131
    +                               MetaFrameBorders *borders);
    
    132
    + 
    
    133
    +-void meta_frames_apply_shapes (MetaFrames *frames,
    
    134
    +-                               Window      xwindow,
    
    135
    +-                               int         new_window_width,
    
    136
    +-                               int         new_window_height,
    
    137
    +-                               gboolean    window_has_shape);
    
    138
    ++void meta_frames_apply_shapes (MetaFrames  *frames,
    
    139
    ++                               MetaDisplay *meta_display,
    
    140
    ++                               Window       xwindow,
    
    141
    ++                               int          new_window_width,
    
    142
    ++                               int          new_window_height,
    
    143
    ++                               gboolean     window_has_shape);
    
    144
    + cairo_region_t *meta_frames_get_frame_bounds (MetaFrames *frames,
    
    145
    +                                               Window      xwindow,
    
    146
    +                                               int         window_width,
    
    147
    +diff --git a/src/ui/ui.c b/src/ui/ui.c
    
    148
    +index 9976c7014..2b15cc82d 100644
    
    149
    +--- a/src/ui/ui.c
    
    150
    ++++ b/src/ui/ui.c
    
    151
    +@@ -458,13 +458,14 @@ meta_ui_repaint_frame (MetaUI *ui,
    
    152
    + }
    
    153
    + 
    
    154
    + void
    
    155
    +-meta_ui_apply_frame_shape  (MetaUI  *ui,
    
    156
    +-                            Window   xwindow,
    
    157
    +-                            int      new_window_width,
    
    158
    +-                            int      new_window_height,
    
    159
    +-                            gboolean window_has_shape)
    
    160
    ++meta_ui_apply_frame_shape  (MetaUI      *ui,
    
    161
    ++                            MetaDisplay *display,
    
    162
    ++                            Window       xwindow,
    
    163
    ++                            int          new_window_width,
    
    164
    ++                            int          new_window_height,
    
    165
    ++                            gboolean     window_has_shape)
    
    166
    + {
    
    167
    +-  meta_frames_apply_shapes (ui->frames, xwindow,
    
    168
    ++  meta_frames_apply_shapes (ui->frames, display, xwindow,
    
    169
    +                             new_window_width, new_window_height,
    
    170
    +                             window_has_shape);
    
    171
    + }

  • debian/patches/0002_check-availability-of-compositing-2.patch
    1
    +From ac2c5fbe18d4a27fa738281ef7ebfaa4a9a131f9 Mon Sep 17 00:00:00 2001
    
    2
    +From: Mihai Moldovan <ionic@ionic.de>
    
    3
    +Date: Fri, 28 Jul 2023 20:27:28 +0200
    
    4
    +Subject: [PATCH] ui/tabpopup: likewise only enable compositing code if
    
    5
    + available.
    
    6
    +
    
    7
    +---
    
    8
    + src/core/screen.c      | 2 ++
    
    9
    + src/include/tabpopup.h | 2 ++
    
    10
    + src/ui/tabpopup.c      | 9 +++++++--
    
    11
    + 3 files changed, 11 insertions(+), 2 deletions(-)
    
    12
    +
    
    13
    +--- a/src/core/screen.c
    
    14
    ++++ b/src/core/screen.c
    
    15
    +@@ -1406,6 +1406,7 @@
    
    16
    +     }
    
    17
    + 
    
    18
    +   screen->tab_popup = meta_ui_tab_popup_new (entries,
    
    19
    ++                                             screen,
    
    20
    +                                              len,
    
    21
    +                                              meta_prefs_get_alt_tab_max_columns(),
    
    22
    +                                              meta_prefs_get_alt_tab_expand_to_fit_title(),
    
    23
    +@@ -1485,6 +1486,7 @@
    
    24
    +     }
    
    25
    + 
    
    26
    +   screen->tab_popup = meta_ui_tab_popup_new (entries,
    
    27
    ++                                             screen,
    
    28
    +                                              len,
    
    29
    +                                              layout.cols,
    
    30
    +                                              FALSE, /* expand_for_titles */
    
    31
    +--- a/src/include/tabpopup.h
    
    32
    ++++ b/src/include/tabpopup.h
    
    33
    +@@ -28,6 +28,7 @@
    
    34
    + /* Don't include gtk.h or gdk.h here */
    
    35
    + #include "common.h"
    
    36
    + #include "boxes.h"
    
    37
    ++#include "types.h"
    
    38
    + #include <X11/Xlib.h>
    
    39
    + #include <glib.h>
    
    40
    + #include <gdk-pixbuf/gdk-pixbuf.h>
    
    41
    +@@ -58,6 +59,7 @@
    
    42
    + };
    
    43
    + 
    
    44
    + MetaTabPopup*   meta_ui_tab_popup_new          (const MetaTabEntry *entries,
    
    45
    ++                                                MetaScreen         *meta_screen,
    
    46
    +                                                 int                 entry_count,
    
    47
    +                                                 int                 width,
    
    48
    +                                                 gboolean            expand_for_titles,
    
    49
    +--- a/src/ui/tabpopup.c
    
    50
    ++++ b/src/ui/tabpopup.c
    
    51
    +@@ -30,6 +30,7 @@
    
    52
    + #include "tabpopup.h"
    
    53
    + #include "theme.h"
    
    54
    + #include "prefs.h"
    
    55
    ++#include "screen.h"
    
    56
    + /* FIXME these two includes are 100% broken... */
    
    57
    + #include "../core/workspace.h"
    
    58
    + #include "../core/frame-private.h"
    
    59
    +@@ -235,6 +236,7 @@
    
    60
    + 
    
    61
    + MetaTabPopup*
    
    62
    + meta_ui_tab_popup_new (const MetaTabEntry *entries,
    
    63
    ++                       MetaScreen         *meta_screen,
    
    64
    +                        int                 entry_count,
    
    65
    +                        int                 width,
    
    66
    +                        gboolean            expand_for_titles,
    
    67
    +@@ -285,7 +287,8 @@
    
    68
    +   gtk_window_set_resizable (GTK_WINDOW (popup->window), TRUE);
    
    69
    + 
    
    70
    +   /* This style should only be set for composited mode. */
    
    71
    +-  if (meta_prefs_get_compositing_manager ())
    
    72
    ++  if (meta_prefs_get_compositing_manager () && meta_screen &&
    
    73
    ++      !!(meta_display_get_compositor (meta_screen_get_display (meta_screen))))
    
    74
    +     {
    
    75
    +       frame_shadow = GTK_SHADOW_NONE;
    
    76
    +       gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (popup->window)),
    
    77
    +@@ -1117,13 +1120,15 @@
    
    78
    +     {
    
    79
    +       GtkStyleContext *context;
    
    80
    +       GdkRGBA color;
    
    81
    ++      MetaScreen *screen = META_SELECT_WORKSPACE (widget)->workspace->screen;
    
    82
    + 
    
    83
    +       context = gtk_widget_get_style_context (widget);
    
    84
    + 
    
    85
    +       gtk_style_context_set_state (context,
    
    86
    +                                    gtk_widget_get_state_flags (widget));
    
    87
    + 
    
    88
    +-      if (meta_prefs_get_compositing_manager ())
    
    89
    ++      if (meta_prefs_get_compositing_manager () && screen &&
    
    90
    ++          !!(meta_display_get_compositor (meta_screen_get_display (screen))))
    
    91
    +         {
    
    92
    +           /* compositing manager creates a dark background: show the selection in a light color */
    
    93
    +           meta_gtk_style_get_light_color (context, GTK_STATE_FLAG_SELECTED, &color);

  • debian/patches/series
    1 1
     0000_shadows.patch
    
    2 2
     1001_marco-Add-cmdline-option-no-keybindings-for-disablin.patch
    
    3
    +0001_check-availability-of-compositing-1.patch
    
    4
    +0002_check-availability-of-compositing-2.patch


  • Reply to: