Merge ~3v1n0/ubuntu/+source/mutter:ubuntu/master into ~ubuntu-desktop/ubuntu/+source/mutter:ubuntu/master
- Git
- lp:~3v1n0/ubuntu/+source/mutter
- ubuntu/master
- Merge into ubuntu/master
Proposed by
Marco Trevisan (Treviño)
Status: | Merged |
---|---|
Merged at revision: | e1a4496c528d27a83abb54973e4035f7b69252d6 |
Proposed branch: | ~3v1n0/ubuntu/+source/mutter:ubuntu/master |
Merge into: | ~ubuntu-desktop/ubuntu/+source/mutter:ubuntu/master |
Diff against target: |
6306 lines (+1538/-1078) 77 files modified
clutter/clutter/clutter-actor.c (+1/-1) clutter/clutter/clutter-device-manager-private.h (+0/-4) clutter/clutter/clutter-input-device.c (+0/-12) clutter/clutter/clutter-input-device.h (+0/-4) clutter/clutter/evdev/clutter-input-device-evdev.c (+8/-24) clutter/clutter/meson.build (+5/-4) clutter/clutter/x11/clutter-input-device-xi2.c (+0/-51) clutter/meson.build (+2/-1) cogl/cogl-gles2/meson.build (+2/-2) cogl/cogl-pango/meson.build (+2/-2) cogl/cogl-path/meson.build (+2/-1) cogl/cogl/cogl-texture-2d-sliced.h (+3/-3) cogl/cogl/cogl-texture-2d.h (+9/-3) cogl/cogl/cogl-texture-driver.h (+0/-9) cogl/cogl/driver/gl/gl/cogl-texture-driver-gl.c (+0/-14) cogl/cogl/driver/gl/gles/cogl-driver-gles.c (+7/-1) cogl/cogl/driver/gl/gles/cogl-texture-driver-gles.c (+0/-10) cogl/cogl/meson.build (+6/-5) cogl/meson.build (+2/-1) debian/changelog (+40/-0) debian/control (+3/-1) debian/control.in (+3/-1) debian/libmutter-4-0.symbols (+1/-2) debian/patches/meson-add-back-default_driver-option.patch (+3/-3) debian/patches/series (+0/-12) debian/patches/x11-Add-support-for-fractional-scaling-using-Randr.patch (+74/-77) debian/rules (+1/-1) dev/null (+0/-29) meson.build (+1/-1) po/ar.po (+538/-279) po/es.po (+18/-18) po/hr.po (+48/-41) src/backends/meta-backend-private.h (+4/-0) src/backends/meta-backend.c (+19/-1) src/backends/meta-input-mapper.c (+46/-1) src/backends/meta-input-settings.c (+3/-1) src/backends/meta-monitor-config-manager.c (+4/-4) src/backends/meta-monitor-manager-dummy.c (+5/-5) src/backends/meta-monitor-manager-private.h (+7/-2) src/backends/meta-monitor-manager.c (+51/-12) src/backends/meta-monitor.c (+33/-35) src/backends/meta-monitor.h (+26/-26) src/backends/meta-stage-private.h (+2/-1) src/backends/meta-stage.c (+23/-4) src/backends/native/meta-crtc-kms.c (+0/-89) src/backends/native/meta-crtc-kms.h (+0/-3) src/backends/native/meta-gpu-kms.c (+3/-6) src/backends/native/meta-monitor-manager-kms.c (+21/-5) src/backends/native/meta-output-kms.c (+59/-3) src/backends/native/meta-renderer-native.c (+145/-49) src/backends/x11/meta-gpu-xrandr.c (+0/-32) src/backends/x11/meta-monitor-manager-xrandr.c (+50/-5) src/compositor/meta-background.c (+1/-1) src/compositor/meta-shadow-factory.c (+1/-1) src/core/bell.c (+3/-79) src/core/bell.h (+0/-11) src/core/boxes-private.h (+1/-1) src/core/boxes.c (+2/-2) src/core/constraints.c (+103/-27) src/core/frame.c (+0/-6) src/core/frame.h (+0/-1) src/core/keybindings.c (+1/-2) src/core/meta-launch-context.c (+2/-2) src/core/prefs.c (+1/-1) src/core/startup-notification.c (+1/-0) src/core/window-private.h (+10/-1) src/core/window.c (+32/-0) src/meson.build (+2/-1) src/meta/common.h (+3/-5) src/meta/meson.build (+1/-1) src/tests/meta-monitor-manager-test.c (+5/-5) src/tests/unit-tests.c (+8/-8) src/ui/theme.c (+0/-2) src/wayland/meta-wayland-buffer.c (+8/-8) src/wayland/meta-wayland-legacy-xdg-shell.c (+1/-1) src/wayland/meta-wayland-text-input.c (+54/-6) src/wayland/meta-wayland-xdg-shell.c (+18/-5) |
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Daniel van Vugt (community) | Needs Fixing | ||
Ubuntu Desktop | Pending | ||
Review via email: mp+365833@code.launchpad.net |
Commit message
Description of the change
Prepared packages at https:/
To post a comment you must log in.
Revision history for this message
Daniel van Vugt (vanvugt) wrote : | # |
Listing things that this release does not change and calling them "changes" is a bit confusing. Maybe don't list such things...
+mutter (3.32.0+
+
+ * Merge with debian git snapshot (LP: #1820542), remaining changes:
+ + debian/control:
+ - Update VCS flags to point to launchpad
+ - Update maintainer to ubuntu
+ + debian/gbp.conf: update branch to point to ubuntu/master
+ + debian/
+ - X11: Add support for fractional scaling using Randr
review:
Needs Fixing
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c |
2 | index fd38338..803f76a 100644 |
3 | --- a/clutter/clutter/clutter-actor.c |
4 | +++ b/clutter/clutter/clutter-actor.c |
5 | @@ -4007,12 +4007,12 @@ clutter_actor_paint (ClutterActor *self) |
6 | pick_mode == CLUTTER_PICK_NONE)) |
7 | _clutter_actor_draw_paint_volume (self); |
8 | |
9 | -done: |
10 | /* If we make it here then the actor has run through a complete |
11 | paint run including all the effects so it's no longer dirty */ |
12 | if (pick_mode == CLUTTER_PICK_NONE) |
13 | priv->is_dirty = FALSE; |
14 | |
15 | +done: |
16 | if (clip_set) |
17 | { |
18 | CoglFramebuffer *fb = _clutter_stage_get_active_framebuffer (stage); |
19 | diff --git a/clutter/clutter/clutter-device-manager-private.h b/clutter/clutter/clutter-device-manager-private.h |
20 | index 60cb99d..2364fd2 100644 |
21 | --- a/clutter/clutter/clutter-device-manager-private.h |
22 | +++ b/clutter/clutter/clutter-device-manager-private.h |
23 | @@ -167,10 +167,6 @@ struct _ClutterInputDeviceClass |
24 | gboolean (* is_grouped) (ClutterInputDevice *device, |
25 | ClutterInputDevice *other_device); |
26 | |
27 | - gboolean (* get_physical_size) (ClutterInputDevice *device, |
28 | - gdouble *width, |
29 | - gdouble *height); |
30 | - |
31 | /* Keyboard accessbility */ |
32 | void (* process_kbd_a11y_event) (ClutterEvent *event, |
33 | ClutterInputDevice *device, |
34 | diff --git a/clutter/clutter/clutter-input-device.c b/clutter/clutter/clutter-input-device.c |
35 | index 5de169c..0697e3a 100644 |
36 | --- a/clutter/clutter/clutter-input-device.c |
37 | +++ b/clutter/clutter/clutter-input-device.c |
38 | @@ -2284,15 +2284,3 @@ clutter_input_device_is_grouped (ClutterInputDevice *device, |
39 | |
40 | return CLUTTER_INPUT_DEVICE_GET_CLASS (device)->is_grouped (device, other_device); |
41 | } |
42 | - |
43 | -gboolean |
44 | -clutter_input_device_get_physical_size (ClutterInputDevice *device, |
45 | - gdouble *width, |
46 | - gdouble *height) |
47 | -{ |
48 | - g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE (device), FALSE); |
49 | - |
50 | - return CLUTTER_INPUT_DEVICE_GET_CLASS (device)->get_physical_size (device, |
51 | - width, |
52 | - height); |
53 | -} |
54 | diff --git a/clutter/clutter/clutter-input-device.h b/clutter/clutter/clutter-input-device.h |
55 | index 8dd2a54..c121fe1 100644 |
56 | --- a/clutter/clutter/clutter-input-device.h |
57 | +++ b/clutter/clutter/clutter-input-device.h |
58 | @@ -171,10 +171,6 @@ void clutter_input_device_set_mapping_mode (ClutterInputDev |
59 | CLUTTER_EXPORT |
60 | gboolean clutter_input_device_is_grouped (ClutterInputDevice *device, |
61 | ClutterInputDevice *other_device); |
62 | -CLUTTER_EXPORT |
63 | -gboolean clutter_input_device_get_physical_size (ClutterInputDevice *device, |
64 | - gdouble *width, |
65 | - gdouble *height); |
66 | |
67 | G_END_DECLS |
68 | |
69 | diff --git a/clutter/clutter/evdev/clutter-input-device-evdev.c b/clutter/clutter/evdev/clutter-input-device-evdev.c |
70 | index 8caf095..b52689e 100644 |
71 | --- a/clutter/clutter/evdev/clutter-input-device-evdev.c |
72 | +++ b/clutter/clutter/evdev/clutter-input-device-evdev.c |
73 | @@ -676,7 +676,7 @@ stop_toggle_slowkeys (ClutterInputDeviceEvdev *device) |
74 | } |
75 | |
76 | static void |
77 | -handle_togglekeys_press (ClutterEvent *event, |
78 | +handle_enablekeys_press (ClutterEvent *event, |
79 | ClutterInputDeviceEvdev *device) |
80 | { |
81 | if (event->key.keyval == XKB_KEY_Shift_L || event->key.keyval == XKB_KEY_Shift_R) |
82 | @@ -698,7 +698,7 @@ handle_togglekeys_press (ClutterEvent *event, |
83 | } |
84 | |
85 | static void |
86 | -handle_togglekeys_release (ClutterEvent *event, |
87 | +handle_enablekeys_release (ClutterEvent *event, |
88 | ClutterInputDeviceEvdev *device) |
89 | { |
90 | if (event->key.keyval == XKB_KEY_Shift_L || event->key.keyval == XKB_KEY_Shift_R) |
91 | @@ -1132,9 +1132,14 @@ clutter_input_device_evdev_process_kbd_a11y_event (ClutterEvent *e |
92 | if (event->key.flags & CLUTTER_EVENT_FLAG_INPUT_METHOD) |
93 | goto emit_event; |
94 | |
95 | - if (!device_evdev->a11y_flags & CLUTTER_A11Y_KEYBOARD_ENABLED) |
96 | + if (!(device_evdev->a11y_flags & CLUTTER_A11Y_KEYBOARD_ENABLED)) |
97 | goto emit_event; |
98 | |
99 | + if (event->type == CLUTTER_KEY_PRESS) |
100 | + handle_enablekeys_press (event, device_evdev); |
101 | + else |
102 | + handle_enablekeys_release (event, device_evdev); |
103 | + |
104 | if (device_evdev->a11y_flags & CLUTTER_A11Y_MOUSE_KEYS_ENABLED) |
105 | { |
106 | if (event->type == CLUTTER_KEY_PRESS && |
107 | @@ -1145,14 +1150,6 @@ clutter_input_device_evdev_process_kbd_a11y_event (ClutterEvent *e |
108 | return; /* swallow event */ |
109 | } |
110 | |
111 | - if (device_evdev->a11y_flags & CLUTTER_A11Y_TOGGLE_KEYS_ENABLED) |
112 | - { |
113 | - if (event->type == CLUTTER_KEY_PRESS) |
114 | - handle_togglekeys_press (event, device_evdev); |
115 | - else |
116 | - handle_togglekeys_release (event, device_evdev); |
117 | - } |
118 | - |
119 | if ((device_evdev->a11y_flags & CLUTTER_A11Y_BOUNCE_KEYS_ENABLED) && |
120 | (get_debounce_delay (device) != 0)) |
121 | { |
122 | @@ -1266,18 +1263,6 @@ clutter_input_device_evdev_release_touch_state (ClutterInputDeviceEvdev *device, |
123 | GINT_TO_POINTER (touch_state->device_slot)); |
124 | } |
125 | |
126 | -static gboolean |
127 | -clutter_input_device_evdev_get_physical_size (ClutterInputDevice *device, |
128 | - gdouble *width, |
129 | - gdouble *height) |
130 | -{ |
131 | - struct libinput_device *libinput_device; |
132 | - |
133 | - libinput_device = clutter_evdev_input_device_get_libinput_device (device); |
134 | - |
135 | - return libinput_device_get_size (libinput_device, width, height) == 0; |
136 | -} |
137 | - |
138 | static void |
139 | clutter_input_device_evdev_class_init (ClutterInputDeviceEvdevClass *klass) |
140 | { |
141 | @@ -1293,7 +1278,6 @@ clutter_input_device_evdev_class_init (ClutterInputDeviceEvdevClass *klass) |
142 | klass->get_group_n_modes = clutter_input_device_evdev_get_group_n_modes; |
143 | klass->is_grouped = clutter_input_device_evdev_is_grouped; |
144 | klass->process_kbd_a11y_event = clutter_input_device_evdev_process_kbd_a11y_event; |
145 | - klass->get_physical_size = clutter_input_device_evdev_get_physical_size; |
146 | |
147 | obj_props[PROP_DEVICE_MATRIX] = |
148 | g_param_spec_boxed ("device-matrix", |
149 | diff --git a/clutter/clutter/meson.build b/clutter/clutter/meson.build |
150 | index 879ea16..671d790 100644 |
151 | --- a/clutter/clutter/meson.build |
152 | +++ b/clutter/clutter/meson.build |
153 | @@ -1,3 +1,4 @@ |
154 | +clutter_clutter_includesubdir = join_paths(clutter_includesubdir, 'clutter') |
155 | clutter_clutter_includedir = join_paths(clutter_includedir, 'clutter') |
156 | |
157 | clutter_headers = [ |
158 | @@ -577,16 +578,16 @@ if have_introspection |
159 | endif |
160 | |
161 | install_headers(clutter_headers, |
162 | - subdir: clutter_clutter_includedir) |
163 | + subdir: clutter_clutter_includesubdir) |
164 | |
165 | install_headers(cally_headers, |
166 | - subdir: join_paths(clutter_includedir, 'cally')) |
167 | + subdir: join_paths(clutter_includesubdir, 'cally')) |
168 | |
169 | install_headers(clutter_deprecated_headers, |
170 | - subdir: join_paths(clutter_clutter_includedir, 'deprecated')) |
171 | + subdir: join_paths(clutter_clutter_includesubdir, 'deprecated')) |
172 | |
173 | install_headers(clutter_x11_headers, |
174 | - subdir: join_paths(clutter_clutter_includedir, 'x11')) |
175 | + subdir: join_paths(clutter_clutter_includesubdir, 'x11')) |
176 | |
177 | pkg.generate(libmutter_clutter, |
178 | name: 'Mutters Clutter', |
179 | diff --git a/clutter/clutter/x11/clutter-input-device-xi2.c b/clutter/clutter/x11/clutter-input-device-xi2.c |
180 | index 92d3637..1254aca 100644 |
181 | --- a/clutter/clutter/x11/clutter-input-device-xi2.c |
182 | +++ b/clutter/clutter/x11/clutter-input-device-xi2.c |
183 | @@ -180,56 +180,6 @@ clutter_input_device_xi2_is_mode_switch_button (ClutterInputDevice *device, |
184 | return button_group == (int) group; |
185 | } |
186 | |
187 | -static gboolean |
188 | -clutter_input_device_xi2_get_physical_size (ClutterInputDevice *device, |
189 | - gdouble *width, |
190 | - gdouble *height) |
191 | -{ |
192 | - Display *xdisplay; |
193 | - XIDeviceInfo *dev_info; |
194 | - gdouble w = 0, h = 0; |
195 | - int i, n_info, device_id; |
196 | - |
197 | - xdisplay = clutter_x11_get_default_display (); |
198 | - device_id = clutter_input_device_get_device_id (device); |
199 | - |
200 | - clutter_x11_trap_x_errors (); |
201 | - dev_info = XIQueryDevice (xdisplay, device_id, &n_info); |
202 | - if (clutter_x11_untrap_x_errors ()) |
203 | - return FALSE; |
204 | - |
205 | - if (!dev_info) |
206 | - return FALSE; |
207 | - |
208 | - for (i = 0; i < dev_info->num_classes; i++) |
209 | - { |
210 | - XIValuatorClassInfo *valuator; |
211 | - gdouble *value; |
212 | - |
213 | - if (dev_info->classes[i]->type != XIValuatorClass) |
214 | - continue; |
215 | - |
216 | - valuator = (XIValuatorClassInfo *) dev_info->classes[i]; |
217 | - |
218 | - if (valuator->label == XInternAtom (xdisplay, "Abs X", True) || |
219 | - valuator->label == XInternAtom (xdisplay, "Abs MT Position X", True)) |
220 | - value = &w; |
221 | - else if (valuator->label == XInternAtom (xdisplay, "Abs Y", True) || |
222 | - valuator->label == XInternAtom (xdisplay, "Abs MT Position Y", True)) |
223 | - value = &h; |
224 | - else |
225 | - continue; |
226 | - |
227 | - *value = (valuator->max - valuator->min) * 1000 / valuator->resolution; |
228 | - } |
229 | - |
230 | - XIFreeDeviceInfo (dev_info); |
231 | - *width = w; |
232 | - *height = h; |
233 | - |
234 | - return (w > 0 && h > 0); |
235 | -} |
236 | - |
237 | static void |
238 | clutter_input_device_xi2_class_init (ClutterInputDeviceXI2Class *klass) |
239 | { |
240 | @@ -243,7 +193,6 @@ clutter_input_device_xi2_class_init (ClutterInputDeviceXI2Class *klass) |
241 | device_class->is_grouped = clutter_input_device_xi2_is_grouped; |
242 | device_class->get_group_n_modes = clutter_input_device_xi2_get_group_n_modes; |
243 | device_class->is_mode_switch_button = clutter_input_device_xi2_is_mode_switch_button; |
244 | - device_class->get_physical_size = clutter_input_device_xi2_get_physical_size; |
245 | } |
246 | |
247 | static void |
248 | diff --git a/clutter/meson.build b/clutter/meson.build |
249 | index 053cfa7..1397be1 100644 |
250 | --- a/clutter/meson.build |
251 | +++ b/clutter/meson.build |
252 | @@ -1,4 +1,5 @@ |
253 | -clutter_includedir = join_paths(pkgincludedir, 'clutter') |
254 | +clutter_includesubdir = join_paths(pkgname, 'clutter') |
255 | +clutter_includedir = join_paths(includedir, clutter_includesubdir) |
256 | clutter_srcdir = join_paths(top_srcdir, 'clutter') |
257 | clutter_builddir = join_paths(builddir, 'clutter') |
258 | |
259 | diff --git a/cogl/cogl-gles2/meson.build b/cogl/cogl-gles2/meson.build |
260 | index d446ca4..fbe3eb1 100644 |
261 | --- a/cogl/cogl-gles2/meson.build |
262 | +++ b/cogl/cogl-gles2/meson.build |
263 | @@ -27,9 +27,9 @@ libmutter_cogl_gles2 = shared_library('mutter-cogl-gles2-' + libmutter_api_versi |
264 | install: true, |
265 | ) |
266 | |
267 | -cogl_gles2_includedir = join_paths(cogl_includedir, 'cogl-gles2/GLES2') |
268 | +cogl_gles2_includesubdir = join_paths(cogl_includesubdir, 'cogl-gles2/GLES2') |
269 | install_headers(cogl_gles2_public_headers, |
270 | - subdir: cogl_gles2_includedir) |
271 | + subdir: cogl_gles2_includesubdir) |
272 | |
273 | pkg.generate(libmutter_cogl_gles2, |
274 | name: 'CoglGles2', |
275 | diff --git a/cogl/cogl-pango/meson.build b/cogl/cogl-pango/meson.build |
276 | index fb4d261..787ec01 100644 |
277 | --- a/cogl/cogl-pango/meson.build |
278 | +++ b/cogl/cogl-pango/meson.build |
279 | @@ -70,8 +70,8 @@ if have_introspection |
280 | ) |
281 | endif |
282 | |
283 | -cogl_pango_includedir = join_paths(cogl_includedir, 'cogl-pango') |
284 | -install_headers(cogl_pango_public_headers, subdir: cogl_pango_includedir) |
285 | +cogl_pango_includesubdir = join_paths(cogl_includesubdir, 'cogl-pango') |
286 | +install_headers(cogl_pango_public_headers, subdir: cogl_pango_includesubdir) |
287 | |
288 | pkg.generate(libmutter_cogl_pango, |
289 | name: 'CoglPango', |
290 | diff --git a/cogl/cogl-path/meson.build b/cogl/cogl-path/meson.build |
291 | index 6faba67..e086a62 100644 |
292 | --- a/cogl/cogl-path/meson.build |
293 | +++ b/cogl/cogl-path/meson.build |
294 | @@ -1,3 +1,4 @@ |
295 | +cogl_path_includesubdir = join_paths(cogl_includesubdir, 'cogl-path') |
296 | cogl_path_includedir = join_paths(cogl_includedir, 'cogl-path') |
297 | |
298 | cogl_path_public_headers = [ |
299 | @@ -76,7 +77,7 @@ libmutter_cogl_path_dep = declare_dependency( |
300 | ) |
301 | |
302 | install_headers(cogl_path_public_headers, |
303 | - subdir: cogl_path_includedir) |
304 | + subdir: cogl_path_includesubdir) |
305 | |
306 | pkg.generate(libmutter_cogl_path, |
307 | name: 'CoglPath', |
308 | diff --git a/cogl/cogl/cogl-texture-2d-sliced.h b/cogl/cogl/cogl-texture-2d-sliced.h |
309 | index 8d43fc5..12ce710 100644 |
310 | --- a/cogl/cogl/cogl-texture-2d-sliced.h |
311 | +++ b/cogl/cogl/cogl-texture-2d-sliced.h |
312 | @@ -78,7 +78,7 @@ typedef struct _CoglTexture2DSliced CoglTexture2DSliced; |
313 | GType cogl_texture_2d_sliced_get_gtype (void); |
314 | |
315 | /** |
316 | - * cogl_texture_2d_sliced_new_with_size: |
317 | + * cogl_texture_2d_sliced_new_with_size: (skip) |
318 | * @ctx: A #CoglContext |
319 | * @width: The virtual width of your sliced texture. |
320 | * @height: The virtual height of your sliced texture. |
321 | @@ -125,7 +125,7 @@ cogl_texture_2d_sliced_new_with_size (CoglContext *ctx, |
322 | int max_waste); |
323 | |
324 | /** |
325 | - * cogl_texture_2d_sliced_new_from_file: |
326 | + * cogl_texture_2d_sliced_new_from_file: (skip) |
327 | * @ctx: A #CoglContext |
328 | * @filename: the file to load |
329 | * @max_waste: The threshold of how wide a strip of wasted texels |
330 | @@ -173,7 +173,7 @@ cogl_texture_2d_sliced_new_from_file (CoglContext *ctx, |
331 | CoglError **error); |
332 | |
333 | /** |
334 | - * cogl_texture_2d_sliced_new_from_data: |
335 | + * cogl_texture_2d_sliced_new_from_data: (skip) |
336 | * @ctx: A #CoglContext |
337 | * @width: width of texture in pixels |
338 | * @height: height of texture in pixels |
339 | diff --git a/cogl/cogl/cogl-texture-2d.h b/cogl/cogl/cogl-texture-2d.h |
340 | index 85cadba..29b8b2d 100644 |
341 | --- a/cogl/cogl/cogl-texture-2d.h |
342 | +++ b/cogl/cogl/cogl-texture-2d.h |
343 | @@ -86,7 +86,7 @@ gboolean |
344 | cogl_is_texture_2d (void *object); |
345 | |
346 | /** |
347 | - * cogl_texture_2d_new_with_size: |
348 | + * cogl_texture_2d_new_with_size: (skip) |
349 | * @ctx: A #CoglContext |
350 | * @width: Width of the texture to allocate |
351 | * @height: Height of the texture to allocate |
352 | @@ -120,7 +120,7 @@ cogl_texture_2d_new_with_size (CoglContext *ctx, |
353 | int height); |
354 | |
355 | /** |
356 | - * cogl_texture_2d_new_from_file: |
357 | + * cogl_texture_2d_new_from_file: (skip) |
358 | * @ctx: A #CoglContext |
359 | * @filename: the file to load |
360 | * @error: A #CoglError to catch exceptional errors or %NULL |
361 | @@ -154,7 +154,7 @@ cogl_texture_2d_new_from_file (CoglContext *ctx, |
362 | CoglError **error); |
363 | |
364 | /** |
365 | - * cogl_texture_2d_new_from_data: |
366 | + * cogl_texture_2d_new_from_data: (skip) |
367 | * @ctx: A #CoglContext |
368 | * @width: width of texture in pixels |
369 | * @height: height of texture in pixels |
370 | @@ -231,6 +231,9 @@ cogl_texture_2d_new_from_data (CoglContext *ctx, |
371 | CoglTexture2D * |
372 | cogl_texture_2d_new_from_bitmap (CoglBitmap *bitmap); |
373 | |
374 | +/** |
375 | + * cogl_egl_texture_2d_new_from_image: (skip) |
376 | + */ |
377 | #if defined (COGL_HAS_EGL_SUPPORT) && defined (EGL_KHR_image_base) |
378 | /* NB: The reason we require the width, height and format to be passed |
379 | * even though they may seem redundant is because GLES 1/2 don't |
380 | @@ -247,6 +250,9 @@ typedef gboolean (*CoglTexture2DEGLImageExternalAlloc) (CoglTexture2D *tex_2d, |
381 | gpointer user_data, |
382 | GError **error); |
383 | |
384 | +/** |
385 | + * cogl_texture_2d_new_from_egl_image_external: (skip) |
386 | + */ |
387 | CoglTexture2D * |
388 | cogl_texture_2d_new_from_egl_image_external (CoglContext *ctx, |
389 | int width, |
390 | diff --git a/cogl/cogl/cogl-texture-driver.h b/cogl/cogl/cogl-texture-driver.h |
391 | index f77c548..a6e7d4f 100644 |
392 | --- a/cogl/cogl/cogl-texture-driver.h |
393 | +++ b/cogl/cogl/cogl-texture-driver.h |
394 | @@ -172,15 +172,6 @@ struct _CoglTextureDriver |
395 | int depth); |
396 | |
397 | /* |
398 | - * This driver abstraction is needed because GLES doesn't support setting |
399 | - * a texture border color. |
400 | - */ |
401 | - void |
402 | - (* try_setting_gl_border_color) (CoglContext *ctx, |
403 | - GLuint gl_target, |
404 | - const GLfloat *transparent_color); |
405 | - |
406 | - /* |
407 | * It may depend on the driver as to what texture targets may be used when |
408 | * creating a foreign texture. E.g. OpenGL supports ARB_texture_rectangle |
409 | * but GLES doesn't |
410 | diff --git a/cogl/cogl/driver/gl/gl/cogl-texture-driver-gl.c b/cogl/cogl/driver/gl/gl/cogl-texture-driver-gl.c |
411 | index fbb55de..35b87f7 100644 |
412 | --- a/cogl/cogl/driver/gl/gl/cogl-texture-driver-gl.c |
413 | +++ b/cogl/cogl/driver/gl/gl/cogl-texture-driver-gl.c |
414 | @@ -485,19 +485,6 @@ _cogl_texture_driver_size_supported (CoglContext *ctx, |
415 | return new_width != 0; |
416 | } |
417 | |
418 | -static void |
419 | -_cogl_texture_driver_try_setting_gl_border_color |
420 | - (CoglContext *ctx, |
421 | - GLuint gl_target, |
422 | - const GLfloat *transparent_color) |
423 | -{ |
424 | - /* Use a transparent border color so that we can leave the |
425 | - color buffer alone when using texture co-ordinates |
426 | - outside of the texture */ |
427 | - GE( ctx, glTexParameterfv (gl_target, GL_TEXTURE_BORDER_COLOR, |
428 | - transparent_color) ); |
429 | -} |
430 | - |
431 | static gboolean |
432 | _cogl_texture_driver_allows_foreign_gl_target (CoglContext *ctx, |
433 | GLenum gl_target) |
434 | @@ -541,7 +528,6 @@ _cogl_texture_driver_gl = |
435 | _cogl_texture_driver_gl_get_tex_image, |
436 | _cogl_texture_driver_size_supported, |
437 | _cogl_texture_driver_size_supported_3d, |
438 | - _cogl_texture_driver_try_setting_gl_border_color, |
439 | _cogl_texture_driver_allows_foreign_gl_target, |
440 | _cogl_texture_driver_find_best_gl_get_data_format |
441 | }; |
442 | diff --git a/cogl/cogl/driver/gl/gles/cogl-driver-gles.c b/cogl/cogl/driver/gl/gles/cogl-driver-gles.c |
443 | index 6f2cf6e..23158d5 100644 |
444 | --- a/cogl/cogl/driver/gl/gles/cogl-driver-gles.c |
445 | +++ b/cogl/cogl/driver/gl/gles/cogl-driver-gles.c |
446 | @@ -429,6 +429,12 @@ _cogl_driver_update_features (CoglContext *context, |
447 | return TRUE; |
448 | } |
449 | |
450 | +static gboolean |
451 | +_cogl_driver_texture_2d_is_get_data_supported (CoglTexture2D *tex_2d) |
452 | +{ |
453 | + return FALSE; |
454 | +} |
455 | + |
456 | const CoglDriverVtable |
457 | _cogl_driver_gles = |
458 | { |
459 | @@ -453,7 +459,7 @@ _cogl_driver_gles = |
460 | _cogl_texture_2d_gl_get_gl_handle, |
461 | _cogl_texture_2d_gl_generate_mipmap, |
462 | _cogl_texture_2d_gl_copy_from_bitmap, |
463 | - NULL, /* texture_2d_is_get_data_supported */ |
464 | + _cogl_driver_texture_2d_is_get_data_supported, |
465 | NULL, /* texture_2d_get_data */ |
466 | _cogl_gl_flush_attributes_state, |
467 | _cogl_clip_stack_gl_flush, |
468 | diff --git a/cogl/cogl/driver/gl/gles/cogl-texture-driver-gles.c b/cogl/cogl/driver/gl/gles/cogl-texture-driver-gles.c |
469 | index 17f529e..f773f93 100644 |
470 | --- a/cogl/cogl/driver/gl/gles/cogl-texture-driver-gles.c |
471 | +++ b/cogl/cogl/driver/gl/gles/cogl-texture-driver-gles.c |
472 | @@ -590,15 +590,6 @@ _cogl_texture_driver_size_supported (CoglContext *ctx, |
473 | return width <= max_size && height <= max_size; |
474 | } |
475 | |
476 | -static void |
477 | -_cogl_texture_driver_try_setting_gl_border_color |
478 | - (CoglContext *ctx, |
479 | - GLuint gl_target, |
480 | - const GLfloat *transparent_color) |
481 | -{ |
482 | - /* FAIL! */ |
483 | -} |
484 | - |
485 | static gboolean |
486 | _cogl_texture_driver_allows_foreign_gl_target (CoglContext *ctx, |
487 | GLenum gl_target) |
488 | @@ -636,7 +627,6 @@ _cogl_texture_driver_gles = |
489 | _cogl_texture_driver_gl_get_tex_image, |
490 | _cogl_texture_driver_size_supported, |
491 | _cogl_texture_driver_size_supported_3d, |
492 | - _cogl_texture_driver_try_setting_gl_border_color, |
493 | _cogl_texture_driver_allows_foreign_gl_target, |
494 | _cogl_texture_driver_find_best_gl_get_data_format |
495 | }; |
496 | diff --git a/cogl/cogl/meson.build b/cogl/cogl/meson.build |
497 | index 5d80e87..cb94042 100644 |
498 | --- a/cogl/cogl/meson.build |
499 | +++ b/cogl/cogl/meson.build |
500 | @@ -1,3 +1,4 @@ |
501 | +cogl_cogl_includesubdir = join_paths(cogl_includesubdir, 'cogl') |
502 | cogl_cogl_includedir = join_paths(cogl_includedir, 'cogl') |
503 | |
504 | cdata = configuration_data() |
505 | @@ -89,6 +90,8 @@ cogl_headers = [ |
506 | 'cogl-pipeline-layer-state.h', |
507 | 'cogl-primitives.h', |
508 | 'cogl-texture.h', |
509 | + 'cogl-texture-2d.h', |
510 | + 'cogl-texture-2d-sliced.h', |
511 | 'cogl-types.h', |
512 | 'cogl.h', |
513 | ] |
514 | @@ -117,10 +120,8 @@ cogl_nonintrospected_headers = [ |
515 | 'cogl-matrix-stack.h', |
516 | 'cogl-poll.h', |
517 | 'cogl-texture-3d.h', |
518 | - 'cogl-texture-2d.h', |
519 | 'cogl-texture-2d-gl.h', |
520 | 'cogl-texture-rectangle.h', |
521 | - 'cogl-texture-2d-sliced.h', |
522 | 'cogl-sub-texture.h', |
523 | 'cogl-atlas-texture.h', |
524 | 'cogl-meta-texture.h', |
525 | @@ -514,16 +515,16 @@ install_headers([ |
526 | cogl_headers, |
527 | cogl_nonintrospected_headers, |
528 | ], |
529 | - subdir: cogl_cogl_includedir) |
530 | + subdir: cogl_cogl_includesubdir) |
531 | |
532 | install_headers([ |
533 | cogl_deprecated_headers, |
534 | cogl_deprecated_nonintrospected_headers, |
535 | ], |
536 | - subdir: join_paths(cogl_cogl_includedir, 'deprecated')) |
537 | + subdir: join_paths(cogl_cogl_includesubdir, 'deprecated')) |
538 | |
539 | install_headers(cogl_gl_prototype_headers, |
540 | - subdir: join_paths(cogl_cogl_includedir, 'gl-prototypes')) |
541 | + subdir: join_paths(cogl_cogl_includesubdir, 'gl-prototypes')) |
542 | |
543 | pkg.generate(libmutter_cogl, |
544 | name: 'Cogl', |
545 | diff --git a/cogl/meson.build b/cogl/meson.build |
546 | index d76b865..356d596 100644 |
547 | --- a/cogl/meson.build |
548 | +++ b/cogl/meson.build |
549 | @@ -1,4 +1,5 @@ |
550 | -cogl_includedir = join_paths(pkgincludedir, 'cogl') |
551 | +cogl_includesubdir = join_paths(pkgname, 'cogl') |
552 | +cogl_includedir = join_paths(includedir, cogl_includesubdir) |
553 | cogl_srcdir = join_paths(top_srcdir, 'cogl') |
554 | cogl_builddir = join_paths(builddir, 'cogl') |
555 | |
556 | diff --git a/debian/changelog b/debian/changelog |
557 | index 5825020..7471ed8 100644 |
558 | --- a/debian/changelog |
559 | +++ b/debian/changelog |
560 | @@ -1,3 +1,43 @@ |
561 | +mutter (3.32.0+git20190410-1ubuntu1) disco; urgency=medium |
562 | + |
563 | + * Merge with debian git snapshot (LP: #1820542), remaining changes: |
564 | + + debian/control: |
565 | + - Update VCS flags to point to launchpad |
566 | + - Update maintainer to ubuntu |
567 | + + debian/gbp.conf: update branch to point to ubuntu/master |
568 | + + debian/patches/x11-Add-support-for-fractional-scaling-using-Randr.patch: |
569 | + - X11: Add support for fractional scaling using Randr |
570 | + * d/p/x11-Add-support-for-fractional-scaling-using-Randr.patch: |
571 | + - Refreshed. |
572 | + |
573 | + -- Marco Trevisan (Treviño) <marco@ubuntu.com> Wed, 10 Apr 2019 20:12:29 -0500 |
574 | + |
575 | +mutter (3.32.0+git20190410-1) experimental; urgency=medium |
576 | + |
577 | + * New upstream snapshot up to commit |
578 | + b2d0184c6efa164ad5dd7a2ca8b10cf13acf5b4c. Fixes Launchpad bugs: |
579 | + + GNOME Shell task bar menus not updated with external monitor primary and |
580 | + laptop screen fractionally scaled (LP: #1803319) |
581 | + + (In Xorg sessions only) apps launched from gnome shell do not get input |
582 | + focus (LP: #1817924) |
583 | + + Touch input is offset with two screens (even appearing on the wrong |
584 | + screen) in Xorg sessions (LP: #1821933) |
585 | + + gnome-shell crashed with SIGABRT. Assertion failure in |
586 | + meta_gpu_kms_flip_crtc: "monitor_manager->power_save_mode == |
587 | + META_POWER_SAVE_ON" (LP: #1820331) |
588 | + * debian/patches/various: Drop upstream cherry-picks. We had cherry-picked |
589 | + the stable branch into Debian patches in the previous upload, but that |
590 | + would get out of hand if we carried on. Instead we are using a tarball |
591 | + snapshot. So drop the cherry-picks. |
592 | + * Update symbols. A typo was fixed in a public symbol. This is an ABI break, |
593 | + but upstream didn't consider this worthy of a SONAME change. A codesearch |
594 | + / github / web search doesn't reveal any external users either, so we will |
595 | + eat this to avoid another transition. |
596 | + * Use debhelper-compat 12 and BD on dh-sequence-{gnome,gir}. We were missing |
597 | + a direct BD on the providers. Thanks, Lintian. |
598 | + |
599 | + -- Iain Lane <laney@debian.org> Wed, 10 Apr 2019 16:36:23 +0100 |
600 | + |
601 | mutter (3.32.0-1ubuntu2) disco; urgency=medium |
602 | |
603 | * debian/patches/x11-Add-support-for-fractional-scaling-using-Randr.patch: |
604 | diff --git a/debian/compat b/debian/compat |
605 | deleted file mode 100644 |
606 | index b4de394..0000000 |
607 | --- a/debian/compat |
608 | +++ /dev/null |
609 | @@ -1 +0,0 @@ |
610 | -11 |
611 | diff --git a/debian/control b/debian/control |
612 | index 02668fc..ebbb4d0 100644 |
613 | --- a/debian/control |
614 | +++ b/debian/control |
615 | @@ -8,7 +8,9 @@ Priority: optional |
616 | Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> |
617 | XSBC-Original-Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org> |
618 | Uploaders: Iain Lane <laney@debian.org>, Jeremy Bicha <jbicha@debian.org> |
619 | -Build-Depends: debhelper (>= 11), |
620 | +Build-Depends: debhelper-compat (= 12), |
621 | + dh-sequence-gir, |
622 | + dh-sequence-gnome, |
623 | at-spi2-core <!nocheck>, |
624 | dbus <!nocheck>, |
625 | dmz-cursor-theme <!nocheck>, |
626 | diff --git a/debian/control.in b/debian/control.in |
627 | index 3c5bd2f..b8cb5fa 100644 |
628 | --- a/debian/control.in |
629 | +++ b/debian/control.in |
630 | @@ -4,7 +4,9 @@ Priority: optional |
631 | Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> |
632 | XSBC-Original-Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org> |
633 | Uploaders: @GNOME_TEAM@ |
634 | -Build-Depends: debhelper (>= 11), |
635 | +Build-Depends: debhelper-compat (= 12), |
636 | + dh-sequence-gir, |
637 | + dh-sequence-gnome, |
638 | at-spi2-core <!nocheck>, |
639 | dbus <!nocheck>, |
640 | dmz-cursor-theme <!nocheck>, |
641 | diff --git a/debian/libmutter-4-0.symbols b/debian/libmutter-4-0.symbols |
642 | index 5d8f044..c0f1939 100644 |
643 | --- a/debian/libmutter-4-0.symbols |
644 | +++ b/debian/libmutter-4-0.symbols |
645 | @@ -419,7 +419,7 @@ libmutter-4.so.0 libmutter-4-0 #MINVER# |
646 | meta_rectangle_get_type@Base 3.28.2 |
647 | meta_rectangle_horiz_overlap@Base 3.28.2 |
648 | meta_rectangle_intersect@Base 3.28.2 |
649 | - meta_rectangle_is_adjecent_to@Base 3.28.2 |
650 | + meta_rectangle_is_adjacent_to@Base 3.32.0+git20190410 |
651 | meta_rectangle_overlap@Base 3.28.2 |
652 | meta_rectangle_overlaps_with_region@Base 3.28.2 |
653 | meta_rectangle_resize_with_gravity@Base 3.28.2 |
654 | @@ -1513,7 +1513,6 @@ libmutter-clutter-4.so.0 libmutter-4-0 #MINVER# |
655 | clutter_input_device_get_n_mode_groups@Base 3.29.4 |
656 | clutter_input_device_get_n_rings@Base 3.29.4 |
657 | clutter_input_device_get_n_strips@Base 3.29.4 |
658 | - clutter_input_device_get_physical_size@Base 3.31.90 |
659 | clutter_input_device_get_pointer_actor@Base 3.29.4 |
660 | clutter_input_device_get_pointer_stage@Base 3.29.4 |
661 | clutter_input_device_get_product_id@Base 3.29.4 |
662 | diff --git a/debian/patches/bell-Always-flash-window-instead-of-frame.patch b/debian/patches/bell-Always-flash-window-instead-of-frame.patch |
663 | deleted file mode 100644 |
664 | index 91614ab..0000000 |
665 | --- a/debian/patches/bell-Always-flash-window-instead-of-frame.patch |
666 | +++ /dev/null |
667 | @@ -1,111 +0,0 @@ |
668 | -From: =?utf-8?q?Florian_M=C3=BCllner?= <fmuellner@gnome.org> |
669 | -Date: Wed, 6 Mar 2019 23:51:41 +0100 |
670 | -Subject: bell: Always flash window instead of frame |
671 | - |
672 | -Traditionally visual alerts were implemented by flashing the focus |
673 | -window's frame. As that only works for windows that we decorate, |
674 | -flashing the whole window was added as a fallback for client-decorated |
675 | -windows. |
676 | - |
677 | -However that introduces some confusing inconsistency, better to just |
678 | -always flash the entire window. |
679 | - |
680 | -https://gitlab.gnome.org/GNOME/mutter/issues/491 |
681 | - |
682 | -Origin: upstream, commit:8d62da2dc4c710246425ea89c09f41e7713371f |
683 | -Applied-Upstream: 3.32.1 |
684 | ---- |
685 | - src/core/bell.c | 66 +++------------------------------------------------------ |
686 | - 1 file changed, 3 insertions(+), 63 deletions(-) |
687 | - |
688 | -diff --git a/src/core/bell.c b/src/core/bell.c |
689 | -index cd96275..aa334d6 100644 |
690 | ---- a/src/core/bell.c |
691 | -+++ b/src/core/bell.c |
692 | -@@ -34,10 +34,8 @@ |
693 | - * function then checks what kind of visual flash you like, and calls either |
694 | - * bell_flash_fullscreen()-- which calls bell_flash_screen() to do |
695 | - * its work-- or bell_flash_frame(), which flashes the focussed window |
696 | -- * using bell_flash_window_frame(), unless there is no such window, in |
697 | -- * which case it flashes the screen instead. bell_flash_window_frame() |
698 | -- * flashes the frame and calls bell_unflash_frame() as a timeout to |
699 | -- * remove the flash. |
700 | -+ * using bell_flash_window(), unless there is no such window, in |
701 | -+ * which case it flashes the screen instead. |
702 | - * |
703 | - * The visual bell was the result of a discussion in Bugzilla here: |
704 | - * <http://bugzilla.gnome.org/show_bug.cgi?id=99886>. |
705 | -@@ -135,62 +133,6 @@ bell_flash_fullscreen (MetaDisplay *display) |
706 | - meta_compositor_flash_display (display->compositor, display); |
707 | - } |
708 | - |
709 | --/** |
710 | -- * bell_unflash_frame: |
711 | -- * @data: The frame to unflash, cast to a gpointer so it can go into |
712 | -- * a callback function. |
713 | -- * |
714 | -- * Makes a frame be not flashed; this is the timeout half of |
715 | -- * bell_flash_window_frame(). This is done simply by clearing the |
716 | -- * flash flag and queuing a redraw of the frame. |
717 | -- * |
718 | -- * If the configure script found we had no XKB, this does not exist. |
719 | -- * |
720 | -- * Returns: Always FALSE, so we don't get called again. |
721 | -- */ |
722 | -- |
723 | --/* |
724 | -- * Bug: This is the parallel to bell_flash_window_frame(), so it should |
725 | -- * really be called meta_bell_unflash_window_frame(). |
726 | -- */ |
727 | --static gboolean |
728 | --bell_unflash_frame (gpointer data) |
729 | --{ |
730 | -- MetaFrame *frame = (MetaFrame *) data; |
731 | -- frame->is_flashing = 0; |
732 | -- meta_frame_queue_draw (frame); |
733 | -- return FALSE; |
734 | --} |
735 | -- |
736 | --/** |
737 | -- * bell_flash_window_frame: |
738 | -- * @window: The window to flash |
739 | -- * |
740 | -- * Makes a frame flash and then return to normal shortly afterwards. |
741 | -- * This is done by setting a flag so that the theme |
742 | -- * code will temporarily draw the frame as focussed if it's unfocussed and |
743 | -- * vice versa, and then queueing a redraw. Lastly, we create a timeout so |
744 | -- * that the flag can be unset and the frame re-redrawn. |
745 | -- * |
746 | -- * If the configure script found we had no XKB, this does not exist. |
747 | -- */ |
748 | --static void |
749 | --bell_flash_window_frame (MetaWindow *window) |
750 | --{ |
751 | -- guint id; |
752 | -- g_assert (window->frame != NULL); |
753 | -- window->frame->is_flashing = 1; |
754 | -- meta_frame_queue_draw (window->frame); |
755 | -- /* Since this idle is added after the Clutter clock source, with |
756 | -- * the same priority, it will be executed after it as well, so |
757 | -- * we are guaranteed to get at least one frame drawn in the |
758 | -- * flashed state, no matter how loaded we are. |
759 | -- */ |
760 | -- id = g_timeout_add_full (META_PRIORITY_REDRAW, 100, |
761 | -- bell_unflash_frame, window->frame, NULL); |
762 | -- g_source_set_name_by_id (id, "[mutter] bell_unflash_frame"); |
763 | --} |
764 | -- |
765 | - static void |
766 | - bell_flash_window (MetaWindow *window) |
767 | - { |
768 | -@@ -209,9 +151,7 @@ static void |
769 | - bell_flash_frame (MetaDisplay *display, |
770 | - MetaWindow *window) |
771 | - { |
772 | -- if (window && window->frame) |
773 | -- bell_flash_window_frame (window); |
774 | -- else if (window) |
775 | -+ if (window) |
776 | - bell_flash_window (window); |
777 | - else |
778 | - bell_flash_fullscreen (display); |
779 | diff --git a/debian/patches/boxes-Actually-check-for-rectangle-containment.patch b/debian/patches/boxes-Actually-check-for-rectangle-containment.patch |
780 | deleted file mode 100644 |
781 | index b3af31e..0000000 |
782 | --- a/debian/patches/boxes-Actually-check-for-rectangle-containment.patch |
783 | +++ /dev/null |
784 | @@ -1,38 +0,0 @@ |
785 | -From: Pablo Barciela <scow@riseup.net> |
786 | -Date: Sun, 3 Mar 2019 16:05:55 +0100 |
787 | -Subject: boxes: Actually check for rectangle containment |
788 | - |
789 | -Fixes condition duplicated: |
790 | - |
791 | - /* If a contains b, just remove b */ |
792 | - if (meta_rectangle_contains_rect (a, b)) |
793 | - { |
794 | - delete_me = other; |
795 | - } |
796 | - /* If b contains a, just remove a */ |
797 | - else if (meta_rectangle_contains_rect (a, b)) |
798 | - { |
799 | - delete_me = compare; |
800 | - } |
801 | - |
802 | -Closes https://gitlab.gnome.org/GNOME/mutter/issues/480 |
803 | - |
804 | -Origin: upstream, commit:18164779c07c12c5acfcddde7834980c7521aac |
805 | -Applied-Upstream: 3.32.1 |
806 | ---- |
807 | - src/core/boxes.c | 2 +- |
808 | - 1 file changed, 1 insertion(+), 1 deletion(-) |
809 | - |
810 | -diff --git a/src/core/boxes.c b/src/core/boxes.c |
811 | -index 4ab07d2..87f2d5d 100644 |
812 | ---- a/src/core/boxes.c |
813 | -+++ b/src/core/boxes.c |
814 | -@@ -468,7 +468,7 @@ merge_spanning_rects_in_region (GList *region) |
815 | - delete_me = other; |
816 | - } |
817 | - /* If b contains a, just remove a */ |
818 | -- else if (meta_rectangle_contains_rect (a, b)) |
819 | -+ else if (meta_rectangle_contains_rect (b, a)) |
820 | - { |
821 | - delete_me = compare; |
822 | - } |
823 | diff --git a/debian/patches/cogl-Introspect-CoglTexture2D-Sliced.patch b/debian/patches/cogl-Introspect-CoglTexture2D-Sliced.patch |
824 | deleted file mode 100644 |
825 | index 55a9e05..0000000 |
826 | --- a/debian/patches/cogl-Introspect-CoglTexture2D-Sliced.patch |
827 | +++ /dev/null |
828 | @@ -1,124 +0,0 @@ |
829 | -From: =?utf-8?q?Florian_M=C3=BCllner?= <fmuellner@gnome.org> |
830 | -Date: Wed, 6 Mar 2019 18:50:33 +0100 |
831 | -Subject: cogl: Introspect CoglTexture2D(Sliced) |
832 | - |
833 | -gnome-shell cannot use CoglTexture if gjs can't tell that an object |
834 | -in question implements the CoglTexture interface. |
835 | - |
836 | -https://gitlab.gnome.org/GNOME/gnome-shell/issues/1020 |
837 | -https://gitlab.gnome.org/GNOME/mutter/merge_requests/482 |
838 | - |
839 | -Origin: upstream, commit:aca31c81494435a6c3f2266b664bfc727a23fbe |
840 | -Applied-Upstream: 3.32.1 |
841 | ---- |
842 | - cogl/cogl/cogl-texture-2d-sliced.h | 6 +++--- |
843 | - cogl/cogl/cogl-texture-2d.h | 12 +++++++++--- |
844 | - cogl/cogl/meson.build | 4 ++-- |
845 | - 3 files changed, 14 insertions(+), 8 deletions(-) |
846 | - |
847 | -diff --git a/cogl/cogl/cogl-texture-2d-sliced.h b/cogl/cogl/cogl-texture-2d-sliced.h |
848 | -index 8d43fc5..12ce710 100644 |
849 | ---- a/cogl/cogl/cogl-texture-2d-sliced.h |
850 | -+++ b/cogl/cogl/cogl-texture-2d-sliced.h |
851 | -@@ -78,7 +78,7 @@ typedef struct _CoglTexture2DSliced CoglTexture2DSliced; |
852 | - GType cogl_texture_2d_sliced_get_gtype (void); |
853 | - |
854 | - /** |
855 | -- * cogl_texture_2d_sliced_new_with_size: |
856 | -+ * cogl_texture_2d_sliced_new_with_size: (skip) |
857 | - * @ctx: A #CoglContext |
858 | - * @width: The virtual width of your sliced texture. |
859 | - * @height: The virtual height of your sliced texture. |
860 | -@@ -125,7 +125,7 @@ cogl_texture_2d_sliced_new_with_size (CoglContext *ctx, |
861 | - int max_waste); |
862 | - |
863 | - /** |
864 | -- * cogl_texture_2d_sliced_new_from_file: |
865 | -+ * cogl_texture_2d_sliced_new_from_file: (skip) |
866 | - * @ctx: A #CoglContext |
867 | - * @filename: the file to load |
868 | - * @max_waste: The threshold of how wide a strip of wasted texels |
869 | -@@ -173,7 +173,7 @@ cogl_texture_2d_sliced_new_from_file (CoglContext *ctx, |
870 | - CoglError **error); |
871 | - |
872 | - /** |
873 | -- * cogl_texture_2d_sliced_new_from_data: |
874 | -+ * cogl_texture_2d_sliced_new_from_data: (skip) |
875 | - * @ctx: A #CoglContext |
876 | - * @width: width of texture in pixels |
877 | - * @height: height of texture in pixels |
878 | -diff --git a/cogl/cogl/cogl-texture-2d.h b/cogl/cogl/cogl-texture-2d.h |
879 | -index 85cadba..29b8b2d 100644 |
880 | ---- a/cogl/cogl/cogl-texture-2d.h |
881 | -+++ b/cogl/cogl/cogl-texture-2d.h |
882 | -@@ -86,7 +86,7 @@ gboolean |
883 | - cogl_is_texture_2d (void *object); |
884 | - |
885 | - /** |
886 | -- * cogl_texture_2d_new_with_size: |
887 | -+ * cogl_texture_2d_new_with_size: (skip) |
888 | - * @ctx: A #CoglContext |
889 | - * @width: Width of the texture to allocate |
890 | - * @height: Height of the texture to allocate |
891 | -@@ -120,7 +120,7 @@ cogl_texture_2d_new_with_size (CoglContext *ctx, |
892 | - int height); |
893 | - |
894 | - /** |
895 | -- * cogl_texture_2d_new_from_file: |
896 | -+ * cogl_texture_2d_new_from_file: (skip) |
897 | - * @ctx: A #CoglContext |
898 | - * @filename: the file to load |
899 | - * @error: A #CoglError to catch exceptional errors or %NULL |
900 | -@@ -154,7 +154,7 @@ cogl_texture_2d_new_from_file (CoglContext *ctx, |
901 | - CoglError **error); |
902 | - |
903 | - /** |
904 | -- * cogl_texture_2d_new_from_data: |
905 | -+ * cogl_texture_2d_new_from_data: (skip) |
906 | - * @ctx: A #CoglContext |
907 | - * @width: width of texture in pixels |
908 | - * @height: height of texture in pixels |
909 | -@@ -231,6 +231,9 @@ cogl_texture_2d_new_from_data (CoglContext *ctx, |
910 | - CoglTexture2D * |
911 | - cogl_texture_2d_new_from_bitmap (CoglBitmap *bitmap); |
912 | - |
913 | -+/** |
914 | -+ * cogl_egl_texture_2d_new_from_image: (skip) |
915 | -+ */ |
916 | - #if defined (COGL_HAS_EGL_SUPPORT) && defined (EGL_KHR_image_base) |
917 | - /* NB: The reason we require the width, height and format to be passed |
918 | - * even though they may seem redundant is because GLES 1/2 don't |
919 | -@@ -247,6 +250,9 @@ typedef gboolean (*CoglTexture2DEGLImageExternalAlloc) (CoglTexture2D *tex_2d, |
920 | - gpointer user_data, |
921 | - GError **error); |
922 | - |
923 | -+/** |
924 | -+ * cogl_texture_2d_new_from_egl_image_external: (skip) |
925 | -+ */ |
926 | - CoglTexture2D * |
927 | - cogl_texture_2d_new_from_egl_image_external (CoglContext *ctx, |
928 | - int width, |
929 | -diff --git a/cogl/cogl/meson.build b/cogl/cogl/meson.build |
930 | -index 5d80e87..626e8fa 100644 |
931 | ---- a/cogl/cogl/meson.build |
932 | -+++ b/cogl/cogl/meson.build |
933 | -@@ -89,6 +89,8 @@ cogl_headers = [ |
934 | - 'cogl-pipeline-layer-state.h', |
935 | - 'cogl-primitives.h', |
936 | - 'cogl-texture.h', |
937 | -+ 'cogl-texture-2d.h', |
938 | -+ 'cogl-texture-2d-sliced.h', |
939 | - 'cogl-types.h', |
940 | - 'cogl.h', |
941 | - ] |
942 | -@@ -117,10 +119,8 @@ cogl_nonintrospected_headers = [ |
943 | - 'cogl-matrix-stack.h', |
944 | - 'cogl-poll.h', |
945 | - 'cogl-texture-3d.h', |
946 | -- 'cogl-texture-2d.h', |
947 | - 'cogl-texture-2d-gl.h', |
948 | - 'cogl-texture-rectangle.h', |
949 | -- 'cogl-texture-2d-sliced.h', |
950 | - 'cogl-sub-texture.h', |
951 | - 'cogl-atlas-texture.h', |
952 | - 'cogl-meta-texture.h', |
953 | diff --git a/debian/patches/cogl-Remove-unused-CoglTextureDriver-try_setting_gl_borde.patch b/debian/patches/cogl-Remove-unused-CoglTextureDriver-try_setting_gl_borde.patch |
954 | deleted file mode 100644 |
955 | index b4e5f3b..0000000 |
956 | --- a/debian/patches/cogl-Remove-unused-CoglTextureDriver-try_setting_gl_borde.patch |
957 | +++ /dev/null |
958 | @@ -1,94 +0,0 @@ |
959 | -From: Adam Jackson <ajax@redhat.com> |
960 | -Date: Wed, 6 Mar 2019 12:15:40 -0500 |
961 | -Subject: cogl: Remove unused CoglTextureDriver::try_setting_gl_border_color |
962 | - |
963 | -https://gitlab.gnome.org/GNOME/mutter/merge_requests/480 |
964 | - |
965 | -Origin: upstream, commit:555a2c8eba115425a81d7b84f3ca2163493c0d4 |
966 | -Applied-Upstream: 3.32.1 |
967 | ---- |
968 | - cogl/cogl/cogl-texture-driver.h | 9 --------- |
969 | - cogl/cogl/driver/gl/gl/cogl-texture-driver-gl.c | 14 -------------- |
970 | - cogl/cogl/driver/gl/gles/cogl-texture-driver-gles.c | 10 ---------- |
971 | - 3 files changed, 33 deletions(-) |
972 | - |
973 | -diff --git a/cogl/cogl/cogl-texture-driver.h b/cogl/cogl/cogl-texture-driver.h |
974 | -index f77c548..a6e7d4f 100644 |
975 | ---- a/cogl/cogl/cogl-texture-driver.h |
976 | -+++ b/cogl/cogl/cogl-texture-driver.h |
977 | -@@ -171,15 +171,6 @@ struct _CoglTextureDriver |
978 | - int height, |
979 | - int depth); |
980 | - |
981 | -- /* |
982 | -- * This driver abstraction is needed because GLES doesn't support setting |
983 | -- * a texture border color. |
984 | -- */ |
985 | -- void |
986 | -- (* try_setting_gl_border_color) (CoglContext *ctx, |
987 | -- GLuint gl_target, |
988 | -- const GLfloat *transparent_color); |
989 | -- |
990 | - /* |
991 | - * It may depend on the driver as to what texture targets may be used when |
992 | - * creating a foreign texture. E.g. OpenGL supports ARB_texture_rectangle |
993 | -diff --git a/cogl/cogl/driver/gl/gl/cogl-texture-driver-gl.c b/cogl/cogl/driver/gl/gl/cogl-texture-driver-gl.c |
994 | -index fbb55de..35b87f7 100644 |
995 | ---- a/cogl/cogl/driver/gl/gl/cogl-texture-driver-gl.c |
996 | -+++ b/cogl/cogl/driver/gl/gl/cogl-texture-driver-gl.c |
997 | -@@ -485,19 +485,6 @@ _cogl_texture_driver_size_supported (CoglContext *ctx, |
998 | - return new_width != 0; |
999 | - } |
1000 | - |
1001 | --static void |
1002 | --_cogl_texture_driver_try_setting_gl_border_color |
1003 | -- (CoglContext *ctx, |
1004 | -- GLuint gl_target, |
1005 | -- const GLfloat *transparent_color) |
1006 | --{ |
1007 | -- /* Use a transparent border color so that we can leave the |
1008 | -- color buffer alone when using texture co-ordinates |
1009 | -- outside of the texture */ |
1010 | -- GE( ctx, glTexParameterfv (gl_target, GL_TEXTURE_BORDER_COLOR, |
1011 | -- transparent_color) ); |
1012 | --} |
1013 | -- |
1014 | - static gboolean |
1015 | - _cogl_texture_driver_allows_foreign_gl_target (CoglContext *ctx, |
1016 | - GLenum gl_target) |
1017 | -@@ -541,7 +528,6 @@ _cogl_texture_driver_gl = |
1018 | - _cogl_texture_driver_gl_get_tex_image, |
1019 | - _cogl_texture_driver_size_supported, |
1020 | - _cogl_texture_driver_size_supported_3d, |
1021 | -- _cogl_texture_driver_try_setting_gl_border_color, |
1022 | - _cogl_texture_driver_allows_foreign_gl_target, |
1023 | - _cogl_texture_driver_find_best_gl_get_data_format |
1024 | - }; |
1025 | -diff --git a/cogl/cogl/driver/gl/gles/cogl-texture-driver-gles.c b/cogl/cogl/driver/gl/gles/cogl-texture-driver-gles.c |
1026 | -index 17f529e..f773f93 100644 |
1027 | ---- a/cogl/cogl/driver/gl/gles/cogl-texture-driver-gles.c |
1028 | -+++ b/cogl/cogl/driver/gl/gles/cogl-texture-driver-gles.c |
1029 | -@@ -590,15 +590,6 @@ _cogl_texture_driver_size_supported (CoglContext *ctx, |
1030 | - return width <= max_size && height <= max_size; |
1031 | - } |
1032 | - |
1033 | --static void |
1034 | --_cogl_texture_driver_try_setting_gl_border_color |
1035 | -- (CoglContext *ctx, |
1036 | -- GLuint gl_target, |
1037 | -- const GLfloat *transparent_color) |
1038 | --{ |
1039 | -- /* FAIL! */ |
1040 | --} |
1041 | -- |
1042 | - static gboolean |
1043 | - _cogl_texture_driver_allows_foreign_gl_target (CoglContext *ctx, |
1044 | - GLenum gl_target) |
1045 | -@@ -636,7 +627,6 @@ _cogl_texture_driver_gles = |
1046 | - _cogl_texture_driver_gl_get_tex_image, |
1047 | - _cogl_texture_driver_size_supported, |
1048 | - _cogl_texture_driver_size_supported_3d, |
1049 | -- _cogl_texture_driver_try_setting_gl_border_color, |
1050 | - _cogl_texture_driver_allows_foreign_gl_target, |
1051 | - _cogl_texture_driver_find_best_gl_get_data_format |
1052 | - }; |
1053 | diff --git a/debian/patches/frame-Remove-flashing-support.patch b/debian/patches/frame-Remove-flashing-support.patch |
1054 | deleted file mode 100644 |
1055 | index efbaf14..0000000 |
1056 | --- a/debian/patches/frame-Remove-flashing-support.patch |
1057 | +++ /dev/null |
1058 | @@ -1,144 +0,0 @@ |
1059 | -From: =?utf-8?q?Florian_M=C3=BCllner?= <fmuellner@gnome.org> |
1060 | -Date: Wed, 6 Mar 2019 23:56:33 +0100 |
1061 | -Subject: frame: Remove flashing support |
1062 | - |
1063 | -It's now unused. |
1064 | - |
1065 | -https://gitlab.gnome.org/GNOME/mutter/issues/491 |
1066 | - |
1067 | -Origin: upstream, commit:bd33e7b0027f51307657938db3b4cc1a8d03dde |
1068 | -Applied-Upstream: 3.32.1 |
1069 | ---- |
1070 | - src/core/bell.c | 16 ---------------- |
1071 | - src/core/bell.h | 11 ----------- |
1072 | - src/core/frame.c | 6 ------ |
1073 | - src/core/frame.h | 1 - |
1074 | - src/meta/common.h | 8 +++----- |
1075 | - src/ui/theme.c | 2 -- |
1076 | - 6 files changed, 3 insertions(+), 41 deletions(-) |
1077 | - |
1078 | -diff --git a/src/core/bell.c b/src/core/bell.c |
1079 | -index aa334d6..d7000b2 100644 |
1080 | ---- a/src/core/bell.c |
1081 | -+++ b/src/core/bell.c |
1082 | -@@ -207,19 +207,3 @@ meta_bell_notify (MetaDisplay *display, |
1083 | - |
1084 | - return TRUE; |
1085 | - } |
1086 | -- |
1087 | --/** |
1088 | -- * meta_bell_notify_frame_destroy: |
1089 | -- * @frame: The frame which is being destroyed |
1090 | -- * |
1091 | -- * Deals with a frame being destroyed. This is important because if we're |
1092 | -- * using a visual bell, we might be flashing the edges of the frame, and |
1093 | -- * so we'd have a timeout function waiting ready to un-flash them. If the |
1094 | -- * frame's going away, we can tell the timeout not to bother. |
1095 | -- */ |
1096 | --void |
1097 | --meta_bell_notify_frame_destroy (MetaFrame *frame) |
1098 | --{ |
1099 | -- if (frame->is_flashing) |
1100 | -- g_source_remove_by_funcs_user_data (&g_timeout_funcs, frame); |
1101 | --} |
1102 | -diff --git a/src/core/bell.h b/src/core/bell.h |
1103 | -index 9205b08..f86cbb7 100644 |
1104 | ---- a/src/core/bell.h |
1105 | -+++ b/src/core/bell.h |
1106 | -@@ -41,14 +41,3 @@ MetaBell * meta_bell_new (MetaDisplay *display); |
1107 | - */ |
1108 | - gboolean meta_bell_notify (MetaDisplay *display, |
1109 | - MetaWindow *window); |
1110 | -- |
1111 | --/** |
1112 | -- * meta_bell_notify_frame_destroy: |
1113 | -- * @frame: The frame which is being destroyed |
1114 | -- * |
1115 | -- * Deals with a frame being destroyed. This is important because if we're |
1116 | -- * using a visual bell, we might be flashing the edges of the frame, and |
1117 | -- * so we'd have a timeout function waiting ready to un-flash them. If the |
1118 | -- * frame's going away, we can tell the timeout not to bother. |
1119 | -- */ |
1120 | --void meta_bell_notify_frame_destroy (MetaFrame *frame); |
1121 | -diff --git a/src/core/frame.c b/src/core/frame.c |
1122 | -index 7eea0a3..7699461 100644 |
1123 | ---- a/src/core/frame.c |
1124 | -+++ b/src/core/frame.c |
1125 | -@@ -60,7 +60,6 @@ meta_window_ensure_frame (MetaWindow *window) |
1126 | - frame->right_width = 0; |
1127 | - frame->current_cursor = 0; |
1128 | - |
1129 | -- frame->is_flashing = FALSE; |
1130 | - frame->borders_cached = FALSE; |
1131 | - |
1132 | - meta_verbose ("Frame geometry %d,%d %dx%d\n", |
1133 | -@@ -177,8 +176,6 @@ meta_window_destroy_frame (MetaWindow *window) |
1134 | - |
1135 | - meta_frame_calc_borders (frame, &borders); |
1136 | - |
1137 | -- meta_bell_notify_frame_destroy (frame); |
1138 | -- |
1139 | - /* Unparent the client window; it may be destroyed, |
1140 | - * thus the error trap. |
1141 | - */ |
1142 | -@@ -298,9 +295,6 @@ meta_frame_get_flags (MetaFrame *frame) |
1143 | - if (frame->window->fullscreen) |
1144 | - flags |= META_FRAME_FULLSCREEN; |
1145 | - |
1146 | -- if (frame->is_flashing) |
1147 | -- flags |= META_FRAME_IS_FLASHING; |
1148 | -- |
1149 | - if (frame->window->wm_state_above) |
1150 | - flags |= META_FRAME_ABOVE; |
1151 | - |
1152 | -diff --git a/src/core/frame.h b/src/core/frame.h |
1153 | -index 73a7b4b..c0bacbe 100644 |
1154 | ---- a/src/core/frame.h |
1155 | -+++ b/src/core/frame.h |
1156 | -@@ -49,7 +49,6 @@ struct _MetaFrame |
1157 | - int bottom_height; |
1158 | - |
1159 | - guint need_reapply_frame_shape : 1; |
1160 | -- guint is_flashing : 1; /* used by the visual bell flash */ |
1161 | - guint borders_cached : 1; |
1162 | - |
1163 | - MetaUIFrame *ui_frame; |
1164 | -diff --git a/src/meta/common.h b/src/meta/common.h |
1165 | -index 02e2802..670097b 100644 |
1166 | ---- a/src/meta/common.h |
1167 | -+++ b/src/meta/common.h |
1168 | -@@ -63,7 +63,6 @@ |
1169 | - * @META_FRAME_ALLOWS_SHADE: frame allows shade |
1170 | - * @META_FRAME_ALLOWS_MOVE: frame allows move |
1171 | - * @META_FRAME_FULLSCREEN: frame allows fullscreen |
1172 | -- * @META_FRAME_IS_FLASHING: frame is flashing |
1173 | - * @META_FRAME_ABOVE: frame is above |
1174 | - * @META_FRAME_TILED_LEFT: frame is tiled to the left |
1175 | - * @META_FRAME_TILED_RIGHT: frame is tiled to the right |
1176 | -@@ -83,10 +82,9 @@ typedef enum |
1177 | - META_FRAME_ALLOWS_SHADE = 1 << 10, |
1178 | - META_FRAME_ALLOWS_MOVE = 1 << 11, |
1179 | - META_FRAME_FULLSCREEN = 1 << 12, |
1180 | -- META_FRAME_IS_FLASHING = 1 << 13, |
1181 | -- META_FRAME_ABOVE = 1 << 14, |
1182 | -- META_FRAME_TILED_LEFT = 1 << 15, |
1183 | -- META_FRAME_TILED_RIGHT = 1 << 16 |
1184 | -+ META_FRAME_ABOVE = 1 << 13, |
1185 | -+ META_FRAME_TILED_LEFT = 1 << 14, |
1186 | -+ META_FRAME_TILED_RIGHT = 1 << 15 |
1187 | - } MetaFrameFlags; |
1188 | - |
1189 | - /** |
1190 | -diff --git a/src/ui/theme.c b/src/ui/theme.c |
1191 | -index 53d7ef5..b7618d9 100644 |
1192 | ---- a/src/ui/theme.c |
1193 | -+++ b/src/ui/theme.c |
1194 | -@@ -1186,8 +1186,6 @@ meta_style_info_set_flags (MetaStyleInfo *style_info, |
1195 | - int i; |
1196 | - |
1197 | - backdrop = !(flags & META_FRAME_HAS_FOCUS); |
1198 | -- if (flags & META_FRAME_IS_FLASHING) |
1199 | -- backdrop = !backdrop; |
1200 | - |
1201 | - if (flags & META_FRAME_MAXIMIZED) |
1202 | - class_name = "maximized"; |
1203 | diff --git a/debian/patches/keybindings-Fix-theoretical-memory-leak-while-ungrabbing.patch b/debian/patches/keybindings-Fix-theoretical-memory-leak-while-ungrabbing.patch |
1204 | deleted file mode 100644 |
1205 | index 9f4e0f6..0000000 |
1206 | --- a/debian/patches/keybindings-Fix-theoretical-memory-leak-while-ungrabbing.patch |
1207 | +++ /dev/null |
1208 | @@ -1,36 +0,0 @@ |
1209 | -From: Benjamin Berg <bberg@redhat.com> |
1210 | -Date: Wed, 6 Mar 2019 14:07:02 +0100 |
1211 | -Subject: keybindings: Fix theoretical memory leak while ungrabbing |
1212 | - |
1213 | -In the unlikely event that one tries to ungrab an action which does not |
1214 | -exist, a small leak could occur. Fix this by using g_autofree. |
1215 | - |
1216 | -https://gitlab.gnome.org/GNOME/mutter/merge_requests/478 |
1217 | - |
1218 | -Origin: upstream, commit:0ceeb28481ec74073241d0c2f6af8795f070905 |
1219 | -Applied-Upstream: 3.32.1 |
1220 | ---- |
1221 | - src/core/keybindings.c | 3 +-- |
1222 | - 1 file changed, 1 insertion(+), 2 deletions(-) |
1223 | - |
1224 | -diff --git a/src/core/keybindings.c b/src/core/keybindings.c |
1225 | -index 5ffe411..478d4d8 100644 |
1226 | ---- a/src/core/keybindings.c |
1227 | -+++ b/src/core/keybindings.c |
1228 | -@@ -1654,7 +1654,7 @@ meta_display_ungrab_accelerator (MetaDisplay *display, |
1229 | - MetaKeyBindingManager *keys = &display->key_binding_manager; |
1230 | - MetaKeyBinding *binding; |
1231 | - MetaKeyGrab *grab; |
1232 | -- char *key; |
1233 | -+ g_autofree char *key = NULL; |
1234 | - MetaResolvedKeyCombo resolved_combo = { NULL, 0 }; |
1235 | - |
1236 | - g_return_val_if_fail (action != META_KEYBINDING_ACTION_NONE, FALSE); |
1237 | -@@ -1683,7 +1683,6 @@ meta_display_ungrab_accelerator (MetaDisplay *display, |
1238 | - } |
1239 | - |
1240 | - g_hash_table_remove (external_grabs, key); |
1241 | -- g_free (key); |
1242 | - resolved_key_combo_reset (&resolved_combo); |
1243 | - |
1244 | - return TRUE; |
1245 | diff --git a/debian/patches/meson-add-back-default_driver-option.patch b/debian/patches/meson-add-back-default_driver-option.patch |
1246 | index 2aa1054..b79207c 100644 |
1247 | --- a/debian/patches/meson-add-back-default_driver-option.patch |
1248 | +++ b/debian/patches/meson-add-back-default_driver-option.patch |
1249 | @@ -29,10 +29,10 @@ index 56946b2..ae53310 100644 |
1250 | + |
1251 | #define COGL_CONFIG_H_INCLUDED 1 |
1252 | diff --git a/cogl/meson.build b/cogl/meson.build |
1253 | -index d76b865..a6c22ff 100644 |
1254 | +index 356d596..2ab83bd 100644 |
1255 | --- a/cogl/meson.build |
1256 | +++ b/cogl/meson.build |
1257 | -@@ -9,6 +9,10 @@ cdata.set('HAVE_COGL_GL', have_gl) |
1258 | +@@ -10,6 +10,10 @@ cdata.set('HAVE_COGL_GL', have_gl) |
1259 | cdata.set('HAVE_COGL_GLES2', have_gles2) |
1260 | cdata.set('ENABLE_UNIT_TESTS', have_cogl_tests) |
1261 | |
1262 | @@ -44,7 +44,7 @@ index d76b865..a6c22ff 100644 |
1263 | input: 'cogl-config.h.meson', |
1264 | output: 'cogl-config.h', |
1265 | diff --git a/meson.build b/meson.build |
1266 | -index dc210e6..cafbde4 100644 |
1267 | +index 6ce9e59..bebe8eb 100644 |
1268 | --- a/meson.build |
1269 | +++ b/meson.build |
1270 | @@ -210,6 +210,8 @@ if have_wayland_eglstream |
1271 | diff --git a/debian/patches/meta-monitor-Remove-useless-variable.patch b/debian/patches/meta-monitor-Remove-useless-variable.patch |
1272 | deleted file mode 100644 |
1273 | index c32082a..0000000 |
1274 | --- a/debian/patches/meta-monitor-Remove-useless-variable.patch |
1275 | +++ /dev/null |
1276 | @@ -1,44 +0,0 @@ |
1277 | -From: =?utf-8?q?Florian_M=C3=BCllner?= <fmuellner@gnome.org> |
1278 | -Date: Tue, 5 Mar 2019 01:26:35 +0100 |
1279 | -Subject: meta-monitor: Remove useless variable |
1280 | - |
1281 | -Since commit f76b3edf9cdf, the variable is never set to TRUE and |
1282 | -we can simply remove it. |
1283 | - |
1284 | -https://gitlab.gnome.org/GNOME/mutter/merge_requests/475 |
1285 | - |
1286 | -Origin: upstream, commit:2504ae91770a1d6524a136f56ab437d4455a626 |
1287 | -Applied-Upstream: 3.32.1 |
1288 | ---- |
1289 | - src/backends/meta-monitor.c | 4 +--- |
1290 | - 1 file changed, 1 insertion(+), 3 deletions(-) |
1291 | - |
1292 | -diff --git a/src/backends/meta-monitor.c b/src/backends/meta-monitor.c |
1293 | -index 3ff18a5..1a32e4c 100644 |
1294 | ---- a/src/backends/meta-monitor.c |
1295 | -+++ b/src/backends/meta-monitor.c |
1296 | -@@ -1587,7 +1587,6 @@ get_closest_scale_factor_for_resolution (float width, |
1297 | - float scaled_w; |
1298 | - float best_scale; |
1299 | - int base_scaled_w; |
1300 | -- gboolean limit_exceeded; |
1301 | - gboolean found_one; |
1302 | - |
1303 | - best_scale = 0; |
1304 | -@@ -1604,7 +1603,6 @@ get_closest_scale_factor_for_resolution (float width, |
1305 | - |
1306 | - i = 0; |
1307 | - found_one = FALSE; |
1308 | -- limit_exceeded = FALSE; |
1309 | - base_scaled_w = floorf (scaled_w); |
1310 | - |
1311 | - do |
1312 | -@@ -1637,7 +1635,7 @@ get_closest_scale_factor_for_resolution (float width, |
1313 | - |
1314 | - i++; |
1315 | - } |
1316 | -- while (!found_one && !limit_exceeded); |
1317 | -+ while (!found_one); |
1318 | - |
1319 | - out: |
1320 | - return best_scale; |
1321 | diff --git a/debian/patches/monitor-Fix-indentation-style-on-calculate_crtc_pos-and-f.patch b/debian/patches/monitor-Fix-indentation-style-on-calculate_crtc_pos-and-f.patch |
1322 | deleted file mode 100644 |
1323 | index eab8a30..0000000 |
1324 | --- a/debian/patches/monitor-Fix-indentation-style-on-calculate_crtc_pos-and-f.patch |
1325 | +++ /dev/null |
1326 | @@ -1,116 +0,0 @@ |
1327 | -From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net> |
1328 | -Date: Fri, 8 Mar 2019 18:13:00 +0000 |
1329 | -Subject: monitor: Fix indentation style on calculate_crtc_pos and friends |
1330 | - |
1331 | -https://gitlab.gnome.org/GNOME/mutter/merge_requests/488 |
1332 | - |
1333 | -Origin: upstream, commit:2525f286d3a6687b6d78b038f795d0c1a4f4cb0 |
1334 | -Applied-Upstream: 3.32.1 |
1335 | ---- |
1336 | - src/backends/meta-monitor.c | 36 ++++++++++++++++++------------------ |
1337 | - src/backends/meta-monitor.h | 24 ++++++++++++------------ |
1338 | - 2 files changed, 30 insertions(+), 30 deletions(-) |
1339 | - |
1340 | -diff --git a/src/backends/meta-monitor.c b/src/backends/meta-monitor.c |
1341 | -index b2f500f..1c6e844 100644 |
1342 | ---- a/src/backends/meta-monitor.c |
1343 | -+++ b/src/backends/meta-monitor.c |
1344 | -@@ -615,12 +615,12 @@ meta_monitor_normal_get_suggested_position (MetaMonitor *monitor, |
1345 | - } |
1346 | - |
1347 | - static void |
1348 | --meta_monitor_normal_calculate_crtc_pos (MetaMonitor *monitor, |
1349 | -- MetaMonitorMode *monitor_mode, |
1350 | -- MetaOutput *output, |
1351 | -- MetaMonitorTransform crtc_transform, |
1352 | -- int *out_x, |
1353 | -- int *out_y) |
1354 | -+meta_monitor_normal_calculate_crtc_pos (MetaMonitor *monitor, |
1355 | -+ MetaMonitorMode *monitor_mode, |
1356 | -+ MetaOutput *output, |
1357 | -+ MetaMonitorTransform crtc_transform, |
1358 | -+ int *out_x, |
1359 | -+ int *out_y) |
1360 | - { |
1361 | - *out_x = 0; |
1362 | - *out_y = 0; |
1363 | -@@ -1267,12 +1267,12 @@ meta_monitor_tiled_get_suggested_position (MetaMonitor *monitor, |
1364 | - } |
1365 | - |
1366 | - static void |
1367 | --meta_monitor_tiled_calculate_crtc_pos (MetaMonitor *monitor, |
1368 | -- MetaMonitorMode *monitor_mode, |
1369 | -- MetaOutput *output, |
1370 | -- MetaMonitorTransform crtc_transform, |
1371 | -- int *out_x, |
1372 | -- int *out_y) |
1373 | -+meta_monitor_tiled_calculate_crtc_pos (MetaMonitor *monitor, |
1374 | -+ MetaMonitorMode *monitor_mode, |
1375 | -+ MetaOutput *output, |
1376 | -+ MetaMonitorTransform crtc_transform, |
1377 | -+ int *out_x, |
1378 | -+ int *out_y) |
1379 | - { |
1380 | - MetaMonitorModeTiled *mode_tiled = (MetaMonitorModeTiled *) monitor_mode; |
1381 | - |
1382 | -@@ -1461,12 +1461,12 @@ meta_monitor_get_modes (MetaMonitor *monitor) |
1383 | - } |
1384 | - |
1385 | - void |
1386 | --meta_monitor_calculate_crtc_pos (MetaMonitor *monitor, |
1387 | -- MetaMonitorMode *monitor_mode, |
1388 | -- MetaOutput *output, |
1389 | -- MetaMonitorTransform crtc_transform, |
1390 | -- int *out_x, |
1391 | -- int *out_y) |
1392 | -+meta_monitor_calculate_crtc_pos (MetaMonitor *monitor, |
1393 | -+ MetaMonitorMode *monitor_mode, |
1394 | -+ MetaOutput *output, |
1395 | -+ MetaMonitorTransform crtc_transform, |
1396 | -+ int *out_x, |
1397 | -+ int *out_y) |
1398 | - { |
1399 | - META_MONITOR_GET_CLASS (monitor)->calculate_crtc_pos (monitor, |
1400 | - monitor_mode, |
1401 | -diff --git a/src/backends/meta-monitor.h b/src/backends/meta-monitor.h |
1402 | -index b24b1a5..c3ba4cf 100644 |
1403 | ---- a/src/backends/meta-monitor.h |
1404 | -+++ b/src/backends/meta-monitor.h |
1405 | -@@ -74,12 +74,12 @@ struct _MetaMonitorClass |
1406 | - MetaOutput * (* get_main_output) (MetaMonitor *monitor); |
1407 | - void (* derive_layout) (MetaMonitor *monitor, |
1408 | - MetaRectangle *layout); |
1409 | -- void (* calculate_crtc_pos) (MetaMonitor *monitor, |
1410 | -- MetaMonitorMode *monitor_mode, |
1411 | -- MetaOutput *output, |
1412 | -- MetaMonitorTransform crtc_transform, |
1413 | -- int *out_x, |
1414 | -- int *out_y); |
1415 | -+ void (* calculate_crtc_pos) (MetaMonitor *monitor, |
1416 | -+ MetaMonitorMode *monitor_mode, |
1417 | -+ MetaOutput *output, |
1418 | -+ MetaMonitorTransform crtc_transform, |
1419 | -+ int *out_x, |
1420 | -+ int *out_y); |
1421 | - gboolean (* get_suggested_position) (MetaMonitor *monitor, |
1422 | - int *width, |
1423 | - int *height); |
1424 | -@@ -214,12 +214,12 @@ META_EXPORT_TEST |
1425 | - GList * meta_monitor_get_modes (MetaMonitor *monitor); |
1426 | - |
1427 | - META_EXPORT_TEST |
1428 | --void meta_monitor_calculate_crtc_pos (MetaMonitor *monitor, |
1429 | -- MetaMonitorMode *monitor_mode, |
1430 | -- MetaOutput *output, |
1431 | -- MetaMonitorTransform crtc_transform, |
1432 | -- int *out_x, |
1433 | -- int *out_y); |
1434 | -+void meta_monitor_calculate_crtc_pos (MetaMonitor *monitor, |
1435 | -+ MetaMonitorMode *monitor_mode, |
1436 | -+ MetaOutput *output, |
1437 | -+ MetaMonitorTransform crtc_transform, |
1438 | -+ int *out_x, |
1439 | -+ int *out_y); |
1440 | - |
1441 | - META_EXPORT_TEST |
1442 | - float meta_monitor_calculate_mode_scale (MetaMonitor *monitor, |
1443 | diff --git a/debian/patches/monitor-Fix-indentation-style-on-calculate_supported_scal.patch b/debian/patches/monitor-Fix-indentation-style-on-calculate_supported_scal.patch |
1444 | deleted file mode 100644 |
1445 | index 047f099..0000000 |
1446 | --- a/debian/patches/monitor-Fix-indentation-style-on-calculate_supported_scal.patch |
1447 | +++ /dev/null |
1448 | @@ -1,162 +0,0 @@ |
1449 | -From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net> |
1450 | -Date: Fri, 8 Mar 2019 18:03:57 +0000 |
1451 | -Subject: monitor: Fix indentation style on calculate_supported_scales and |
1452 | - friends |
1453 | - |
1454 | -https://gitlab.gnome.org/GNOME/mutter/merge_requests/488 |
1455 | - |
1456 | -Origin: upstream, commit:b8510ac566de7e7d08c9713508adb20451d2373 |
1457 | -Applied-Upstream: 3.32.1 |
1458 | ---- |
1459 | - src/backends/meta-monitor-manager-dummy.c | 10 +++++----- |
1460 | - src/backends/meta-monitor-manager.c | 10 +++++----- |
1461 | - src/backends/meta-monitor.c | 8 ++++---- |
1462 | - src/backends/meta-monitor.h | 8 ++++---- |
1463 | - src/backends/native/meta-monitor-manager-kms.c | 10 +++++----- |
1464 | - src/backends/x11/meta-monitor-manager-xrandr.c | 10 +++++----- |
1465 | - src/tests/meta-monitor-manager-test.c | 10 +++++----- |
1466 | - 7 files changed, 33 insertions(+), 33 deletions(-) |
1467 | - |
1468 | -diff --git a/src/backends/meta-monitor-manager-dummy.c b/src/backends/meta-monitor-manager-dummy.c |
1469 | -index 06e8837..46c3b8c 100644 |
1470 | ---- a/src/backends/meta-monitor-manager-dummy.c |
1471 | -+++ b/src/backends/meta-monitor-manager-dummy.c |
1472 | -@@ -694,11 +694,11 @@ meta_monitor_manager_dummy_calculate_monitor_mode_scale (MetaMonitorManager *man |
1473 | - } |
1474 | - |
1475 | - static float * |
1476 | --meta_monitor_manager_dummy_calculate_supported_scales (MetaMonitorManager *manager, |
1477 | -- MetaLogicalMonitorLayoutMode layout_mode, |
1478 | -- MetaMonitor *monitor, |
1479 | -- MetaMonitorMode *monitor_mode, |
1480 | -- int *n_supported_scales) |
1481 | -+meta_monitor_manager_dummy_calculate_supported_scales (MetaMonitorManager *manager, |
1482 | -+ MetaLogicalMonitorLayoutMode layout_mode, |
1483 | -+ MetaMonitor *monitor, |
1484 | -+ MetaMonitorMode *monitor_mode, |
1485 | -+ int *n_supported_scales) |
1486 | - { |
1487 | - MetaMonitorScalesConstraint constraints = |
1488 | - META_MONITOR_SCALES_CONSTRAINT_NONE; |
1489 | -diff --git a/src/backends/meta-monitor-manager.c b/src/backends/meta-monitor-manager.c |
1490 | -index 9420265..c4ed245 100644 |
1491 | ---- a/src/backends/meta-monitor-manager.c |
1492 | -+++ b/src/backends/meta-monitor-manager.c |
1493 | -@@ -400,11 +400,11 @@ meta_monitor_manager_calculate_monitor_mode_scale (MetaMonitorManager *manager, |
1494 | - } |
1495 | - |
1496 | - float * |
1497 | --meta_monitor_manager_calculate_supported_scales (MetaMonitorManager *manager, |
1498 | -- MetaLogicalMonitorLayoutMode layout_mode, |
1499 | -- MetaMonitor *monitor, |
1500 | -- MetaMonitorMode *monitor_mode, |
1501 | -- int *n_supported_scales) |
1502 | -+meta_monitor_manager_calculate_supported_scales (MetaMonitorManager *manager, |
1503 | -+ MetaLogicalMonitorLayoutMode layout_mode, |
1504 | -+ MetaMonitor *monitor, |
1505 | -+ MetaMonitorMode *monitor_mode, |
1506 | -+ int *n_supported_scales) |
1507 | - { |
1508 | - MetaMonitorManagerClass *manager_class = |
1509 | - META_MONITOR_MANAGER_GET_CLASS (manager); |
1510 | -diff --git a/src/backends/meta-monitor.c b/src/backends/meta-monitor.c |
1511 | -index 1a32e4c..b2f500f 100644 |
1512 | ---- a/src/backends/meta-monitor.c |
1513 | -+++ b/src/backends/meta-monitor.c |
1514 | -@@ -1642,10 +1642,10 @@ out: |
1515 | - } |
1516 | - |
1517 | - float * |
1518 | --meta_monitor_calculate_supported_scales (MetaMonitor *monitor, |
1519 | -- MetaMonitorMode *monitor_mode, |
1520 | -- MetaMonitorScalesConstraint constraints, |
1521 | -- int *n_supported_scales) |
1522 | -+meta_monitor_calculate_supported_scales (MetaMonitor *monitor, |
1523 | -+ MetaMonitorMode *monitor_mode, |
1524 | -+ MetaMonitorScalesConstraint constraints, |
1525 | -+ int *n_supported_scales) |
1526 | - { |
1527 | - unsigned int i, j; |
1528 | - int width, height; |
1529 | -diff --git a/src/backends/meta-monitor.h b/src/backends/meta-monitor.h |
1530 | -index 41f2c0f..b24b1a5 100644 |
1531 | ---- a/src/backends/meta-monitor.h |
1532 | -+++ b/src/backends/meta-monitor.h |
1533 | -@@ -226,10 +226,10 @@ float meta_monitor_calculate_mode_scale (MetaMonitor *monitor, |
1534 | - MetaMonitorMode *monitor_mode); |
1535 | - |
1536 | - META_EXPORT_TEST |
1537 | --float * meta_monitor_calculate_supported_scales (MetaMonitor *monitor, |
1538 | -- MetaMonitorMode *monitor_mode, |
1539 | -- MetaMonitorScalesConstraint constraints, |
1540 | -- int *n_supported_scales); |
1541 | -+float * meta_monitor_calculate_supported_scales (MetaMonitor *monitor, |
1542 | -+ MetaMonitorMode *monitor_mode, |
1543 | -+ MetaMonitorScalesConstraint constraints, |
1544 | -+ int *n_supported_scales); |
1545 | - |
1546 | - META_EXPORT_TEST |
1547 | - const char * meta_monitor_mode_get_id (MetaMonitorMode *monitor_mode); |
1548 | -diff --git a/src/backends/native/meta-monitor-manager-kms.c b/src/backends/native/meta-monitor-manager-kms.c |
1549 | -index c2c8ab5..c9a3cab 100644 |
1550 | ---- a/src/backends/native/meta-monitor-manager-kms.c |
1551 | -+++ b/src/backends/native/meta-monitor-manager-kms.c |
1552 | -@@ -512,11 +512,11 @@ meta_monitor_manager_kms_calculate_monitor_mode_scale (MetaMonitorManager *manag |
1553 | - } |
1554 | - |
1555 | - static float * |
1556 | --meta_monitor_manager_kms_calculate_supported_scales (MetaMonitorManager *manager, |
1557 | -- MetaLogicalMonitorLayoutMode layout_mode, |
1558 | -- MetaMonitor *monitor, |
1559 | -- MetaMonitorMode *monitor_mode, |
1560 | -- int *n_supported_scales) |
1561 | -+meta_monitor_manager_kms_calculate_supported_scales (MetaMonitorManager *manager, |
1562 | -+ MetaLogicalMonitorLayoutMode layout_mode, |
1563 | -+ MetaMonitor *monitor, |
1564 | -+ MetaMonitorMode *monitor_mode, |
1565 | -+ int *n_supported_scales) |
1566 | - { |
1567 | - MetaMonitorScalesConstraint constraints = |
1568 | - META_MONITOR_SCALES_CONSTRAINT_NONE; |
1569 | -diff --git a/src/backends/x11/meta-monitor-manager-xrandr.c b/src/backends/x11/meta-monitor-manager-xrandr.c |
1570 | -index c3a33e5..784bbde 100644 |
1571 | ---- a/src/backends/x11/meta-monitor-manager-xrandr.c |
1572 | -+++ b/src/backends/x11/meta-monitor-manager-xrandr.c |
1573 | -@@ -929,11 +929,11 @@ ensure_supported_monitor_scales (MetaMonitorManager *manager) |
1574 | - } |
1575 | - |
1576 | - static float * |
1577 | --meta_monitor_manager_xrandr_calculate_supported_scales (MetaMonitorManager *manager, |
1578 | -- MetaLogicalMonitorLayoutMode layout_mode, |
1579 | -- MetaMonitor *monitor, |
1580 | -- MetaMonitorMode *monitor_mode, |
1581 | -- int *n_supported_scales) |
1582 | -+meta_monitor_manager_xrandr_calculate_supported_scales (MetaMonitorManager *manager, |
1583 | -+ MetaLogicalMonitorLayoutMode layout_mode, |
1584 | -+ MetaMonitor *monitor, |
1585 | -+ MetaMonitorMode *monitor_mode, |
1586 | -+ int *n_supported_scales) |
1587 | - { |
1588 | - MetaMonitorManagerXrandr *manager_xrandr = |
1589 | - META_MONITOR_MANAGER_XRANDR (manager); |
1590 | -diff --git a/src/tests/meta-monitor-manager-test.c b/src/tests/meta-monitor-manager-test.c |
1591 | -index d1b729c..45680ed 100644 |
1592 | ---- a/src/tests/meta-monitor-manager-test.c |
1593 | -+++ b/src/tests/meta-monitor-manager-test.c |
1594 | -@@ -373,11 +373,11 @@ meta_monitor_manager_test_calculate_monitor_mode_scale (MetaMonitorManager *mana |
1595 | - } |
1596 | - |
1597 | - static float * |
1598 | --meta_monitor_manager_test_calculate_supported_scales (MetaMonitorManager *manager, |
1599 | -- MetaLogicalMonitorLayoutMode layout_mode, |
1600 | -- MetaMonitor *monitor, |
1601 | -- MetaMonitorMode *monitor_mode, |
1602 | -- int *n_supported_scales) |
1603 | -+meta_monitor_manager_test_calculate_supported_scales (MetaMonitorManager *manager, |
1604 | -+ MetaLogicalMonitorLayoutMode layout_mode, |
1605 | -+ MetaMonitor *monitor, |
1606 | -+ MetaMonitorMode *monitor_mode, |
1607 | -+ int *n_supported_scales) |
1608 | - { |
1609 | - MetaMonitorScalesConstraint constraints = |
1610 | - META_MONITOR_SCALES_CONSTRAINT_NONE; |
1611 | diff --git a/debian/patches/monitor-Fix-indentation-style-on-foreach-functions.patch b/debian/patches/monitor-Fix-indentation-style-on-foreach-functions.patch |
1612 | deleted file mode 100644 |
1613 | index b719f23..0000000 |
1614 | --- a/debian/patches/monitor-Fix-indentation-style-on-foreach-functions.patch |
1615 | +++ /dev/null |
1616 | @@ -1,86 +0,0 @@ |
1617 | -From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net> |
1618 | -Date: Fri, 8 Mar 2019 18:17:40 +0000 |
1619 | -Subject: monitor: Fix indentation style on foreach functions |
1620 | - |
1621 | -https://gitlab.gnome.org/GNOME/mutter/merge_requests/488 |
1622 | - |
1623 | -Origin: upstream, commit:03e02bdac58f25df3b5e15525fd9bab06e49bf8 |
1624 | -Applied-Upstream: 3.32.1 |
1625 | ---- |
1626 | - src/backends/meta-monitor.c | 20 ++++++++++---------- |
1627 | - src/backends/meta-monitor.h | 24 ++++++++++++------------ |
1628 | - 2 files changed, 22 insertions(+), 22 deletions(-) |
1629 | - |
1630 | -diff --git a/src/backends/meta-monitor.c b/src/backends/meta-monitor.c |
1631 | -index 1c6e844..22a3e45 100644 |
1632 | ---- a/src/backends/meta-monitor.c |
1633 | -+++ b/src/backends/meta-monitor.c |
1634 | -@@ -1725,11 +1725,11 @@ meta_monitor_mode_get_flags (MetaMonitorMode *monitor_mode) |
1635 | - } |
1636 | - |
1637 | - gboolean |
1638 | --meta_monitor_mode_foreach_crtc (MetaMonitor *monitor, |
1639 | -- MetaMonitorMode *mode, |
1640 | -- MetaMonitorModeFunc func, |
1641 | -- gpointer user_data, |
1642 | -- GError **error) |
1643 | -+meta_monitor_mode_foreach_crtc (MetaMonitor *monitor, |
1644 | -+ MetaMonitorMode *mode, |
1645 | -+ MetaMonitorModeFunc func, |
1646 | -+ gpointer user_data, |
1647 | -+ GError **error) |
1648 | - { |
1649 | - MetaMonitorPrivate *monitor_priv = |
1650 | - meta_monitor_get_instance_private (monitor); |
1651 | -@@ -1751,11 +1751,11 @@ meta_monitor_mode_foreach_crtc (MetaMonitor *monitor, |
1652 | - } |
1653 | - |
1654 | - gboolean |
1655 | --meta_monitor_mode_foreach_output (MetaMonitor *monitor, |
1656 | -- MetaMonitorMode *mode, |
1657 | -- MetaMonitorModeFunc func, |
1658 | -- gpointer user_data, |
1659 | -- GError **error) |
1660 | -+meta_monitor_mode_foreach_output (MetaMonitor *monitor, |
1661 | -+ MetaMonitorMode *mode, |
1662 | -+ MetaMonitorModeFunc func, |
1663 | -+ gpointer user_data, |
1664 | -+ GError **error) |
1665 | - { |
1666 | - MetaMonitorPrivate *monitor_priv = |
1667 | - meta_monitor_get_instance_private (monitor); |
1668 | -diff --git a/src/backends/meta-monitor.h b/src/backends/meta-monitor.h |
1669 | -index c3ba4cf..413a4e2 100644 |
1670 | ---- a/src/backends/meta-monitor.h |
1671 | -+++ b/src/backends/meta-monitor.h |
1672 | -@@ -249,18 +249,18 @@ META_EXPORT_TEST |
1673 | - MetaCrtcModeFlag meta_monitor_mode_get_flags (MetaMonitorMode *monitor_mode); |
1674 | - |
1675 | - META_EXPORT_TEST |
1676 | --gboolean meta_monitor_mode_foreach_crtc (MetaMonitor *monitor, |
1677 | -- MetaMonitorMode *mode, |
1678 | -- MetaMonitorModeFunc func, |
1679 | -- gpointer user_data, |
1680 | -- GError **error); |
1681 | -- |
1682 | --META_EXPORT_TEST |
1683 | --gboolean meta_monitor_mode_foreach_output (MetaMonitor *monitor, |
1684 | -- MetaMonitorMode *mode, |
1685 | -- MetaMonitorModeFunc func, |
1686 | -- gpointer user_data, |
1687 | -- GError **error); |
1688 | -+gboolean meta_monitor_mode_foreach_crtc (MetaMonitor *monitor, |
1689 | -+ MetaMonitorMode *mode, |
1690 | -+ MetaMonitorModeFunc func, |
1691 | -+ gpointer user_data, |
1692 | -+ GError **error); |
1693 | -+ |
1694 | -+META_EXPORT_TEST |
1695 | -+gboolean meta_monitor_mode_foreach_output (MetaMonitor *monitor, |
1696 | -+ MetaMonitorMode *mode, |
1697 | -+ MetaMonitorModeFunc func, |
1698 | -+ gpointer user_data, |
1699 | -+ GError **error); |
1700 | - |
1701 | - META_EXPORT_TEST |
1702 | - gboolean meta_monitor_mode_should_be_advertised (MetaMonitorMode *monitor_mode); |
1703 | diff --git a/debian/patches/prefs-Change-default-of-show-fallback-app-menu.patch b/debian/patches/prefs-Change-default-of-show-fallback-app-menu.patch |
1704 | deleted file mode 100644 |
1705 | index 6ad4427..0000000 |
1706 | --- a/debian/patches/prefs-Change-default-of-show-fallback-app-menu.patch |
1707 | +++ /dev/null |
1708 | @@ -1,29 +0,0 @@ |
1709 | -From: =?utf-8?q?Florian_M=C3=BCllner?= <fmuellner@gnome.org> |
1710 | -Date: Sun, 10 Mar 2019 19:30:12 +0100 |
1711 | -Subject: prefs: Change default of show-fallback-app-menu |
1712 | - |
1713 | -The app menu always was a GNOME-only thing, so after it was removed this |
1714 | -cycle, assuming that it is not displayed by the environment is a better |
1715 | -default. |
1716 | - |
1717 | -https://gitlab.gnome.org/GNOME/mutter/issues/493 |
1718 | - |
1719 | -Origin: upstream, commit:574099449fd7cf78c226bdf9d3d5a414d4bd351 |
1720 | -Applied-Upstream: 3.32.1 |
1721 | ---- |
1722 | - src/core/prefs.c | 2 +- |
1723 | - 1 file changed, 1 insertion(+), 1 deletion(-) |
1724 | - |
1725 | -diff --git a/src/core/prefs.c b/src/core/prefs.c |
1726 | -index fdee5b2..3f0db8a 100644 |
1727 | ---- a/src/core/prefs.c |
1728 | -+++ b/src/core/prefs.c |
1729 | -@@ -111,7 +111,7 @@ static gboolean resize_with_right_button = FALSE; |
1730 | - static gboolean edge_tiling = FALSE; |
1731 | - static gboolean force_fullscreen = TRUE; |
1732 | - static gboolean auto_maximize = TRUE; |
1733 | --static gboolean show_fallback_app_menu = FALSE; |
1734 | -+static gboolean show_fallback_app_menu = TRUE; |
1735 | - |
1736 | - static GDesktopVisualBellType visual_bell_type = G_DESKTOP_VISUAL_BELL_FULLSCREEN_FLASH; |
1737 | - static MetaButtonLayout button_layout; |
1738 | diff --git a/debian/patches/series b/debian/patches/series |
1739 | index 5b6232c..5e2b370 100644 |
1740 | --- a/debian/patches/series |
1741 | +++ b/debian/patches/series |
1742 | @@ -1,15 +1,3 @@ |
1743 | -prefs-Change-default-of-show-fallback-app-menu.patch |
1744 | -keybindings-Fix-theoretical-memory-leak-while-ungrabbing.patch |
1745 | -meta-monitor-Remove-useless-variable.patch |
1746 | -cogl-Remove-unused-CoglTextureDriver-try_setting_gl_borde.patch |
1747 | -cogl-Introspect-CoglTexture2D-Sliced.patch |
1748 | -shadow-factory-Update-shadow-of-attached-modals.patch |
1749 | -monitor-Fix-indentation-style-on-calculate_supported_scal.patch |
1750 | -monitor-Fix-indentation-style-on-calculate_crtc_pos-and-f.patch |
1751 | -monitor-Fix-indentation-style-on-foreach-functions.patch |
1752 | -bell-Always-flash-window-instead-of-frame.patch |
1753 | -frame-Remove-flashing-support.patch |
1754 | -boxes-Actually-check-for-rectangle-containment.patch |
1755 | theme-use-gtk_render_icon_suface-to-paint-button-icon.patch |
1756 | theme-load-icons-as-Gtk-does-with-fallback-and-RTL-suppor.patch |
1757 | meson-add-back-default_driver-option.patch |
1758 | diff --git a/debian/patches/shadow-factory-Update-shadow-of-attached-modals.patch b/debian/patches/shadow-factory-Update-shadow-of-attached-modals.patch |
1759 | deleted file mode 100644 |
1760 | index a46c881..0000000 |
1761 | --- a/debian/patches/shadow-factory-Update-shadow-of-attached-modals.patch |
1762 | +++ /dev/null |
1763 | @@ -1,29 +0,0 @@ |
1764 | -From: =?utf-8?q?Florian_M=C3=BCllner?= <fmuellner@gnome.org> |
1765 | -Date: Wed, 6 Mar 2019 23:31:43 +0100 |
1766 | -Subject: shadow-factory: Update shadow of attached modals |
1767 | - |
1768 | -When commit 91c6a144da synced shadows with Adwaita, it removed the |
1769 | -shadow completely from attached modal dialogs. However Adwaita uses |
1770 | -the same shadow for all dialogs (modal or not), so do the same here. |
1771 | - |
1772 | -https://gitlab.gnome.org/GNOME/mutter/issues/490 |
1773 | - |
1774 | -Origin: upstream, commit:a87e87a05fb29e8e9aad5df5c7752b6db20535e |
1775 | -Applied-Upstream: 3.32.1 |
1776 | ---- |
1777 | - src/compositor/meta-shadow-factory.c | 2 +- |
1778 | - 1 file changed, 1 insertion(+), 1 deletion(-) |
1779 | - |
1780 | -diff --git a/src/compositor/meta-shadow-factory.c b/src/compositor/meta-shadow-factory.c |
1781 | -index 9fdecac..0eb14c9 100644 |
1782 | ---- a/src/compositor/meta-shadow-factory.c |
1783 | -+++ b/src/compositor/meta-shadow-factory.c |
1784 | -@@ -128,7 +128,7 @@ MetaShadowClassInfo default_shadow_classes[] = { |
1785 | - { "popup-menu", { 1, -1, 0, 0, 128 }, { 1, -1, 0, 0, 128 } }, |
1786 | - { "dropdown-menu", { 1, -1, 0, 0, 128 }, { 1, -1, 0, 0, 128 } }, |
1787 | - |
1788 | -- { "attached", { 0, -1, 0, 0, 0 }, { 0, -1, 0, 0, 0 } } |
1789 | -+ { "attached", { 10, -1, 0, 3, 128 }, { 8, -1, 0, 2, 64 } } |
1790 | - }; |
1791 | - |
1792 | - G_DEFINE_TYPE (MetaShadowFactory, meta_shadow_factory, G_TYPE_OBJECT); |
1793 | diff --git a/debian/patches/x11-Add-support-for-fractional-scaling-using-Randr.patch b/debian/patches/x11-Add-support-for-fractional-scaling-using-Randr.patch |
1794 | index 90c17a9..7717be1 100644 |
1795 | --- a/debian/patches/x11-Add-support-for-fractional-scaling-using-Randr.patch |
1796 | +++ b/debian/patches/x11-Add-support-for-fractional-scaling-using-Randr.patch |
1797 | @@ -122,7 +122,7 @@ index ddacfea..8d16455 100644 |
1798 | MetaLogicalMonitor *logical_monitor; |
1799 | |
1800 | diff --git a/src/backends/meta-monitor-config-manager.c b/src/backends/meta-monitor-config-manager.c |
1801 | -index 771c57f..5d620a3 100644 |
1802 | +index 9a54ce5..7084522 100644 |
1803 | --- a/src/backends/meta-monitor-config-manager.c |
1804 | +++ b/src/backends/meta-monitor-config-manager.c |
1805 | @@ -152,6 +152,7 @@ find_unassigned_crtc (MetaOutput *output, |
1806 | @@ -623,7 +623,7 @@ index 46c3b8c..29fde36 100644 |
1807 | settings, |
1808 | META_EXPERIMENTAL_FEATURE_SCALE_MONITOR_FRAMEBUFFER)) |
1809 | diff --git a/src/backends/meta-monitor-manager-private.h b/src/backends/meta-monitor-manager-private.h |
1810 | -index 3b951c6..2ba9ced 100644 |
1811 | +index cdb8f42..bf586ea 100644 |
1812 | --- a/src/backends/meta-monitor-manager-private.h |
1813 | +++ b/src/backends/meta-monitor-manager-private.h |
1814 | @@ -44,7 +44,9 @@ typedef enum _MetaMonitorManagerCapability |
1815 | @@ -655,7 +655,7 @@ index 3b951c6..2ba9ced 100644 |
1816 | MetaMonitorTransform transform; |
1817 | GPtrArray *outputs; |
1818 | }; |
1819 | -@@ -126,6 +130,7 @@ struct _MetaMonitorManager |
1820 | +@@ -124,6 +128,7 @@ struct _MetaMonitorManager |
1821 | GList *gpus; |
1822 | |
1823 | GList *monitors; |
1824 | @@ -663,7 +663,7 @@ index 3b951c6..2ba9ced 100644 |
1825 | |
1826 | GList *logical_monitors; |
1827 | MetaLogicalMonitor *primary_logical_monitor; |
1828 | -@@ -156,6 +161,9 @@ struct _MetaMonitorManager |
1829 | +@@ -154,6 +159,9 @@ struct _MetaMonitorManager |
1830 | * @apply_monitors_config: Tries to apply the given config using the given |
1831 | * method. Throws an error if something went wrong. |
1832 | * |
1833 | @@ -697,7 +697,7 @@ index 3b951c6..2ba9ced 100644 |
1834 | |
1835 | float * (*calculate_supported_scales) (MetaMonitorManager *, |
1836 | MetaLogicalMonitorLayoutMode , |
1837 | -@@ -350,9 +362,10 @@ void meta_monitor_manager_lid_is_closed_changed (MetaMonitorManage |
1838 | +@@ -355,9 +367,10 @@ void meta_monitor_manager_lid_is_closed_changed (MetaMonitorManage |
1839 | |
1840 | gboolean meta_monitor_manager_is_headless (MetaMonitorManager *manager); |
1841 | |
1842 | @@ -711,7 +711,7 @@ index 3b951c6..2ba9ced 100644 |
1843 | |
1844 | float * meta_monitor_manager_calculate_supported_scales (MetaMonitorManager *, |
1845 | MetaLogicalMonitorLayoutMode , |
1846 | -@@ -366,6 +379,11 @@ gboolean meta_monitor_manager_is_scale_supported (MetaMonitorManager |
1847 | +@@ -371,6 +384,11 @@ gboolean meta_monitor_manager_is_scale_supported (MetaMonitorManager |
1848 | MetaMonitorMode *monitor_mode, |
1849 | float scale); |
1850 | |
1851 | @@ -724,10 +724,10 @@ index 3b951c6..2ba9ced 100644 |
1852 | meta_monitor_manager_get_capabilities (MetaMonitorManager *manager); |
1853 | |
1854 | diff --git a/src/backends/meta-monitor-manager.c b/src/backends/meta-monitor-manager.c |
1855 | -index c4ed245..d055eec 100644 |
1856 | +index 2d898c7..a78fb37 100644 |
1857 | --- a/src/backends/meta-monitor-manager.c |
1858 | +++ b/src/backends/meta-monitor-manager.c |
1859 | -@@ -104,8 +104,18 @@ static gboolean |
1860 | +@@ -110,8 +110,18 @@ static gboolean |
1861 | meta_monitor_manager_is_config_complete (MetaMonitorManager *manager, |
1862 | MetaMonitorsConfig *config); |
1863 | |
1864 | @@ -746,9 +746,9 @@ index c4ed245..d055eec 100644 |
1865 | + float threshold, |
1866 | + float *out_scale); |
1867 | |
1868 | - MetaBackend * |
1869 | - meta_monitor_manager_get_backend (MetaMonitorManager *manager) |
1870 | -@@ -190,15 +200,41 @@ meta_monitor_manager_rebuild_logical_monitors (MetaMonitorManager *manager, |
1871 | + static void |
1872 | + meta_monitor_manager_real_read_current_state (MetaMonitorManager *manager); |
1873 | +@@ -199,15 +209,41 @@ meta_monitor_manager_rebuild_logical_monitors (MetaMonitorManager *manager, |
1874 | primary_logical_monitor); |
1875 | } |
1876 | |
1877 | @@ -793,7 +793,7 @@ index c4ed245..d055eec 100644 |
1878 | } |
1879 | |
1880 | static float |
1881 | -@@ -209,24 +245,70 @@ calculate_monitor_scale (MetaMonitorManager *manager, |
1882 | +@@ -218,24 +254,70 @@ calculate_monitor_scale (MetaMonitorManager *manager, |
1883 | |
1884 | monitor_mode = meta_monitor_get_current_mode (monitor); |
1885 | return meta_monitor_manager_calculate_monitor_mode_scale (manager, |
1886 | @@ -869,7 +869,7 @@ index c4ed245..d055eec 100644 |
1887 | } |
1888 | |
1889 | static float |
1890 | -@@ -248,6 +330,44 @@ derive_scale_from_config (MetaMonitorManager *manager, |
1891 | +@@ -257,6 +339,44 @@ derive_scale_from_config (MetaMonitorManager *manager, |
1892 | return 1.0; |
1893 | } |
1894 | |
1895 | @@ -914,7 +914,7 @@ index c4ed245..d055eec 100644 |
1896 | static void |
1897 | meta_monitor_manager_rebuild_logical_monitors_derived (MetaMonitorManager *manager, |
1898 | MetaMonitorsConfig *config) |
1899 | -@@ -296,10 +416,16 @@ meta_monitor_manager_rebuild_logical_monitors_derived (MetaMonitorManager *manag |
1900 | +@@ -305,10 +425,16 @@ meta_monitor_manager_rebuild_logical_monitors_derived (MetaMonitorManager *manag |
1901 | |
1902 | if (use_global_scale) |
1903 | scale = global_scale; |
1904 | @@ -934,7 +934,7 @@ index c4ed245..d055eec 100644 |
1905 | |
1906 | g_assert (scale > 0); |
1907 | |
1908 | -@@ -387,14 +513,19 @@ meta_monitor_manager_is_headless (MetaMonitorManager *manager) |
1909 | +@@ -407,14 +533,19 @@ meta_monitor_manager_is_headless (MetaMonitorManager *manager) |
1910 | } |
1911 | |
1912 | float |
1913 | @@ -957,7 +957,7 @@ index c4ed245..d055eec 100644 |
1914 | monitor, |
1915 | monitor_mode); |
1916 | } |
1917 | -@@ -508,7 +639,8 @@ static gboolean |
1918 | +@@ -528,7 +659,8 @@ static gboolean |
1919 | should_use_stored_config (MetaMonitorManager *manager) |
1920 | { |
1921 | return (manager->in_init || |
1922 | @@ -967,7 +967,7 @@ index c4ed245..d055eec 100644 |
1923 | } |
1924 | |
1925 | MetaMonitorsConfig * |
1926 | -@@ -700,6 +832,8 @@ experimental_features_changed (MetaSettings *settings, |
1927 | +@@ -720,6 +852,8 @@ experimental_features_changed (MetaSettings *settings, |
1928 | { |
1929 | gboolean was_stage_views_scaled; |
1930 | gboolean is_stage_views_scaled; |
1931 | @@ -976,7 +976,7 @@ index c4ed245..d055eec 100644 |
1932 | gboolean should_reconfigure = FALSE; |
1933 | |
1934 | was_stage_views_scaled = |
1935 | -@@ -709,8 +843,16 @@ experimental_features_changed (MetaSettings *settings, |
1936 | +@@ -729,8 +863,16 @@ experimental_features_changed (MetaSettings *settings, |
1937 | meta_settings_is_experimental_feature_enabled ( |
1938 | settings, |
1939 | META_EXPERIMENTAL_FEATURE_SCALE_MONITOR_FRAMEBUFFER); |
1940 | @@ -994,7 +994,7 @@ index c4ed245..d055eec 100644 |
1941 | should_reconfigure = TRUE; |
1942 | |
1943 | if (should_reconfigure) |
1944 | -@@ -1316,6 +1458,41 @@ request_persistent_confirmation (MetaMonitorManager *manager) |
1945 | +@@ -1337,6 +1479,41 @@ request_persistent_confirmation (MetaMonitorManager *manager) |
1946 | g_signal_emit (manager, signals[CONFIRM_DISPLAY_CHANGE], 0); |
1947 | } |
1948 | |
1949 | @@ -1036,7 +1036,7 @@ index c4ed245..d055eec 100644 |
1950 | #define META_DISPLAY_CONFIG_MODE_FLAGS_PREFERRED (1 << 0) |
1951 | #define META_DISPLAY_CONFIG_MODE_FLAGS_CURRENT (1 << 1) |
1952 | |
1953 | -@@ -1343,6 +1520,7 @@ meta_monitor_manager_handle_get_current_state (MetaDBusDisplayConfig *skeleton, |
1954 | +@@ -1364,6 +1541,7 @@ meta_monitor_manager_handle_get_current_state (MetaDBusDisplayConfig *skeleton, |
1955 | MetaMonitorManagerCapability capabilities; |
1956 | int ui_scaling_factor; |
1957 | int max_screen_width, max_screen_height; |
1958 | @@ -1044,7 +1044,7 @@ index c4ed245..d055eec 100644 |
1959 | |
1960 | g_variant_builder_init (&monitors_builder, |
1961 | G_VARIANT_TYPE (MONITORS_FORMAT)); |
1962 | -@@ -1389,6 +1567,7 @@ meta_monitor_manager_handle_get_current_state (MetaDBusDisplayConfig *skeleton, |
1963 | +@@ -1410,6 +1588,7 @@ meta_monitor_manager_handle_get_current_state (MetaDBusDisplayConfig *skeleton, |
1964 | |
1965 | preferred_scale = |
1966 | meta_monitor_manager_calculate_monitor_mode_scale (manager, |
1967 | @@ -1052,7 +1052,7 @@ index c4ed245..d055eec 100644 |
1968 | monitor, |
1969 | monitor_mode); |
1970 | |
1971 | -@@ -1496,6 +1675,14 @@ meta_monitor_manager_handle_get_current_state (MetaDBusDisplayConfig *skeleton, |
1972 | +@@ -1517,6 +1696,14 @@ meta_monitor_manager_handle_get_current_state (MetaDBusDisplayConfig *skeleton, |
1973 | } |
1974 | |
1975 | g_variant_builder_init (&properties_builder, G_VARIANT_TYPE ("a{sv}")); |
1976 | @@ -1067,7 +1067,7 @@ index c4ed245..d055eec 100644 |
1977 | capabilities = meta_monitor_manager_get_capabilities (manager); |
1978 | if ((capabilities & META_MONITOR_MANAGER_CAPABILITY_MIRRORING) == 0) |
1979 | { |
1980 | -@@ -1520,6 +1707,13 @@ meta_monitor_manager_handle_get_current_state (MetaDBusDisplayConfig *skeleton, |
1981 | +@@ -1541,6 +1728,13 @@ meta_monitor_manager_handle_get_current_state (MetaDBusDisplayConfig *skeleton, |
1982 | "global-scale-required", |
1983 | g_variant_new_boolean (TRUE)); |
1984 | } |
1985 | @@ -1081,7 +1081,7 @@ index c4ed245..d055eec 100644 |
1986 | |
1987 | ui_scaling_factor = meta_settings_get_ui_scaling_factor (settings); |
1988 | g_variant_builder_add (&properties_builder, "{sv}", |
1989 | -@@ -1564,12 +1758,14 @@ meta_monitor_manager_handle_get_current_state (MetaDBusDisplayConfig *skeleton, |
1990 | +@@ -1585,12 +1779,14 @@ meta_monitor_manager_handle_get_current_state (MetaDBusDisplayConfig *skeleton, |
1991 | #undef LOGICAL_MONITOR_FORMAT |
1992 | #undef LOGICAL_MONITORS_FORMAT |
1993 | |
1994 | @@ -1102,7 +1102,7 @@ index c4ed245..d055eec 100644 |
1995 | { |
1996 | g_autofree float *supported_scales = NULL; |
1997 | int n_supported_scales; |
1998 | -@@ -1583,8 +1779,66 @@ meta_monitor_manager_is_scale_supported (MetaMonitorManager *manager, |
1999 | +@@ -1604,8 +1800,66 @@ meta_monitor_manager_is_scale_supported (MetaMonitorManager *manager, |
2000 | &n_supported_scales); |
2001 | for (i = 0; i < n_supported_scales; i++) |
2002 | { |
2003 | @@ -1171,7 +1171,7 @@ index c4ed245..d055eec 100644 |
2004 | } |
2005 | |
2006 | return FALSE; |
2007 | -@@ -1628,11 +1882,11 @@ meta_monitor_manager_is_config_applicable (MetaMonitorManager *manager, |
2008 | +@@ -1649,11 +1903,11 @@ meta_monitor_manager_is_config_applicable (MetaMonitorManager *manager, |
2009 | return FALSE; |
2010 | } |
2011 | |
2012 | @@ -1188,7 +1188,7 @@ index c4ed245..d055eec 100644 |
2013 | { |
2014 | g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, |
2015 | "Scale not supported by backend"); |
2016 | -@@ -1841,6 +2095,7 @@ derive_logical_monitor_size (MetaMonitorConfig *monitor_config, |
2017 | +@@ -1862,6 +2116,7 @@ derive_logical_monitor_size (MetaMonitorConfig *monitor_config, |
2018 | switch (layout_mode) |
2019 | { |
2020 | case META_LOGICAL_MONITOR_LAYOUT_MODE_LOGICAL: |
2021 | @@ -1196,7 +1196,7 @@ index c4ed245..d055eec 100644 |
2022 | width = roundf (width / scale); |
2023 | height = roundf (height / scale); |
2024 | break; |
2025 | -@@ -1963,6 +2218,7 @@ is_valid_layout_mode (MetaLogicalMonitorLayoutMode layout_mode) |
2026 | +@@ -1984,6 +2239,7 @@ is_valid_layout_mode (MetaLogicalMonitorLayoutMode layout_mode) |
2027 | { |
2028 | case META_LOGICAL_MONITOR_LAYOUT_MODE_LOGICAL: |
2029 | case META_LOGICAL_MONITOR_LAYOUT_MODE_PHYSICAL: |
2030 | @@ -1204,7 +1204,7 @@ index c4ed245..d055eec 100644 |
2031 | return TRUE; |
2032 | } |
2033 | |
2034 | -@@ -1985,6 +2241,7 @@ meta_monitor_manager_handle_apply_monitors_config (MetaDBusDisplayConfig *skelet |
2035 | +@@ -2006,6 +2262,7 @@ meta_monitor_manager_handle_apply_monitors_config (MetaDBusDisplayConfig *skelet |
2036 | MetaMonitorsConfig *config; |
2037 | GList *logical_monitor_configs = NULL; |
2038 | GError *error = NULL; |
2039 | @@ -1212,7 +1212,7 @@ index c4ed245..d055eec 100644 |
2040 | |
2041 | if (serial != manager->serial) |
2042 | { |
2043 | -@@ -2056,10 +2313,26 @@ meta_monitor_manager_handle_apply_monitors_config (MetaDBusDisplayConfig *skelet |
2044 | +@@ -2077,10 +2334,26 @@ meta_monitor_manager_handle_apply_monitors_config (MetaDBusDisplayConfig *skelet |
2045 | return TRUE; |
2046 | } |
2047 | |
2048 | @@ -1239,7 +1239,7 @@ index c4ed245..d055eec 100644 |
2049 | config = meta_monitors_config_new (manager, |
2050 | logical_monitor_configs, |
2051 | layout_mode, |
2052 | -@@ -2497,12 +2770,6 @@ meta_monitor_manager_get_laptop_panel (MetaMonitorManager *manager) |
2053 | +@@ -2518,12 +2791,6 @@ meta_monitor_manager_get_laptop_panel (MetaMonitorManager *manager) |
2054 | return find_monitor (manager, meta_monitor_is_laptop_panel); |
2055 | } |
2056 | |
2057 | @@ -1252,7 +1252,7 @@ index c4ed245..d055eec 100644 |
2058 | MetaMonitor * |
2059 | meta_monitor_manager_get_monitor_from_connector (MetaMonitorManager *manager, |
2060 | const char *connector) |
2061 | -@@ -2688,6 +2955,10 @@ static void |
2062 | +@@ -2718,6 +2985,10 @@ static void |
2063 | rebuild_monitors (MetaMonitorManager *manager) |
2064 | { |
2065 | GList *l; |
2066 | @@ -1263,7 +1263,7 @@ index c4ed245..d055eec 100644 |
2067 | |
2068 | if (manager->monitors) |
2069 | { |
2070 | -@@ -2704,7 +2975,7 @@ rebuild_monitors (MetaMonitorManager *manager) |
2071 | +@@ -2734,7 +3005,7 @@ rebuild_monitors (MetaMonitorManager *manager) |
2072 | { |
2073 | MetaOutput *output = k->data; |
2074 | |
2075 | @@ -1272,7 +1272,7 @@ index c4ed245..d055eec 100644 |
2076 | { |
2077 | if (is_main_tiled_monitor_output (output)) |
2078 | { |
2079 | -@@ -2901,7 +3172,7 @@ meta_monitor_manager_update_logical_state_derived (MetaMonitorManager *manager, |
2080 | +@@ -2940,7 +3211,7 @@ meta_monitor_manager_update_logical_state_derived (MetaMonitorManager *manager, |
2081 | else |
2082 | manager->current_switch_config = META_MONITOR_SWITCH_CONFIG_UNKNOWN; |
2083 | |
2084 | @@ -1281,7 +1281,7 @@ index c4ed245..d055eec 100644 |
2085 | |
2086 | meta_monitor_manager_rebuild_logical_monitors_derived (manager, config); |
2087 | } |
2088 | -@@ -2910,10 +3181,14 @@ void |
2089 | +@@ -2949,10 +3220,14 @@ void |
2090 | meta_monitor_manager_rebuild_derived (MetaMonitorManager *manager, |
2091 | MetaMonitorsConfig *config) |
2092 | { |
2093 | @@ -1633,10 +1633,10 @@ index 34d49b3..e54317e 100644 |
2094 | g_signal_new ("experimental-features-changed", |
2095 | G_TYPE_FROM_CLASS (object_class), |
2096 | diff --git a/src/backends/native/meta-monitor-manager-kms.c b/src/backends/native/meta-monitor-manager-kms.c |
2097 | -index c9a3cab..da3a619 100644 |
2098 | +index 9a03644..93905e6 100644 |
2099 | --- a/src/backends/native/meta-monitor-manager-kms.c |
2100 | +++ b/src/backends/native/meta-monitor-manager-kms.c |
2101 | -@@ -503,20 +503,8 @@ meta_monitor_manager_kms_is_transform_handled (MetaMonitorManager *manager, |
2102 | +@@ -518,20 +518,8 @@ meta_monitor_manager_kms_is_transform_handled (MetaMonitorManager *manager, |
2103 | return meta_crtc_kms_is_transform_handled (crtc, transform); |
2104 | } |
2105 | |
2106 | @@ -1659,7 +1659,7 @@ index c9a3cab..da3a619 100644 |
2107 | { |
2108 | MetaMonitorScalesConstraint constraints = |
2109 | META_MONITOR_SCALES_CONSTRAINT_NONE; |
2110 | -@@ -524,12 +512,38 @@ meta_monitor_manager_kms_calculate_supported_scales (MetaMonitorManager |
2111 | +@@ -539,12 +527,38 @@ meta_monitor_manager_kms_calculate_supported_scales (MetaMonitorManager |
2112 | switch (layout_mode) |
2113 | { |
2114 | case META_LOGICAL_MONITOR_LAYOUT_MODE_LOGICAL: |
2115 | @@ -1698,7 +1698,7 @@ index c9a3cab..da3a619 100644 |
2116 | return meta_monitor_calculate_supported_scales (monitor, monitor_mode, |
2117 | constraints, |
2118 | n_supported_scales); |
2119 | -@@ -543,7 +557,7 @@ meta_monitor_manager_kms_get_capabilities (MetaMonitorManager *manager) |
2120 | +@@ -558,7 +572,7 @@ meta_monitor_manager_kms_get_capabilities (MetaMonitorManager *manager) |
2121 | MetaRenderer *renderer = meta_backend_get_renderer (backend); |
2122 | MetaRendererNative *renderer_native = META_RENDERER_NATIVE (renderer); |
2123 | MetaMonitorManagerCapability capabilities = |
2124 | @@ -1857,7 +1857,7 @@ index d38a09a..d3f2f60 100644 |
2125 | |
2126 | #endif /* META_CRTC_XRANDR_H */ |
2127 | diff --git a/src/backends/x11/meta-gpu-xrandr.c b/src/backends/x11/meta-gpu-xrandr.c |
2128 | -index 14b46d5..72243a1 100644 |
2129 | +index 3e8a731..e8fa3f5 100644 |
2130 | --- a/src/backends/x11/meta-gpu-xrandr.c |
2131 | +++ b/src/backends/x11/meta-gpu-xrandr.c |
2132 | @@ -42,6 +42,8 @@ struct _MetaGpuXrandr |
2133 | @@ -1945,14 +1945,12 @@ index 14b46d5..72243a1 100644 |
2134 | static gboolean |
2135 | meta_gpu_xrandr_read_current (MetaGpu *gpu, |
2136 | GError **error) |
2137 | -@@ -95,13 +159,14 @@ meta_gpu_xrandr_read_current (MetaGpu *gpu, |
2138 | +@@ -95,19 +159,20 @@ meta_gpu_xrandr_read_current (MetaGpu *gpu, |
2139 | RROutput primary_output; |
2140 | unsigned int i, j; |
2141 | GList *l; |
2142 | - int min_width, min_height; |
2143 | Screen *screen; |
2144 | - BOOL dpms_capable, dpms_enabled; |
2145 | - CARD16 dpms_state; |
2146 | GList *outputs = NULL; |
2147 | GList *modes = NULL; |
2148 | GList *crtcs = NULL; |
2149 | @@ -1961,8 +1959,7 @@ index 14b46d5..72243a1 100644 |
2150 | |
2151 | if (gpu_xrandr->resources) |
2152 | XRRFreeScreenResources (gpu_xrandr->resources); |
2153 | -@@ -138,8 +203,8 @@ meta_gpu_xrandr_read_current (MetaGpu *gpu, |
2154 | - } |
2155 | + gpu_xrandr->resources = NULL; |
2156 | |
2157 | XRRGetScreenSizeRange (xdisplay, DefaultRootWindow (xdisplay), |
2158 | - &min_width, |
2159 | @@ -1972,7 +1969,7 @@ index 14b46d5..72243a1 100644 |
2160 | &gpu_xrandr->max_screen_width, |
2161 | &gpu_xrandr->max_screen_height); |
2162 | |
2163 | -@@ -182,17 +247,33 @@ meta_gpu_xrandr_read_current (MetaGpu *gpu, |
2164 | +@@ -150,17 +215,33 @@ meta_gpu_xrandr_read_current (MetaGpu *gpu, |
2165 | } |
2166 | meta_gpu_take_modes (gpu, modes); |
2167 | |
2168 | @@ -2023,7 +2020,7 @@ index aad49d0..4ac32b9 100644 |
2169 | int *max_width, |
2170 | int *max_height); |
2171 | diff --git a/src/backends/x11/meta-monitor-manager-xrandr.c b/src/backends/x11/meta-monitor-manager-xrandr.c |
2172 | -index 784bbde..246b66d 100644 |
2173 | +index 45c81f4..7df4abc 100644 |
2174 | --- a/src/backends/x11/meta-monitor-manager-xrandr.c |
2175 | +++ b/src/backends/x11/meta-monitor-manager-xrandr.c |
2176 | @@ -63,6 +63,9 @@ |
2177 | @@ -2068,7 +2065,7 @@ index 784bbde..246b66d 100644 |
2178 | } |
2179 | |
2180 | static GBytes * |
2181 | -@@ -149,6 +150,57 @@ meta_monitor_manager_xrandr_set_power_save_mode (MetaMonitorManager *manager, |
2182 | +@@ -193,6 +194,57 @@ meta_monitor_manager_xrandr_set_power_save_mode (MetaMonitorManager *manager, |
2183 | DPMSSetTimeouts (manager_xrandr->xdisplay, 0, 0, 0); |
2184 | } |
2185 | |
2186 | @@ -2126,7 +2123,7 @@ index 784bbde..246b66d 100644 |
2187 | static xcb_randr_rotation_t |
2188 | meta_monitor_transform_to_xrandr (MetaMonitorTransform transform) |
2189 | { |
2190 | -@@ -203,13 +255,36 @@ xrandr_set_crtc_config (MetaMonitorManagerXrandr *manager_xrandr, |
2191 | +@@ -247,13 +299,36 @@ xrandr_set_crtc_config (MetaMonitorManagerXrandr *manager_xrandr, |
2192 | return TRUE; |
2193 | } |
2194 | |
2195 | @@ -2166,7 +2163,7 @@ index 784bbde..246b66d 100644 |
2196 | for (i = 0; i < n_crtc_infos; i++) |
2197 | { |
2198 | MetaCrtcInfo *crtc_info = crtc_infos[i]; |
2199 | -@@ -230,6 +305,37 @@ is_crtc_assignment_changed (MetaCrtc *crtc, |
2200 | +@@ -274,6 +349,37 @@ is_crtc_assignment_changed (MetaCrtc *crtc, |
2201 | if (crtc->transform != crtc_info->transform) |
2202 | return TRUE; |
2203 | |
2204 | @@ -2204,7 +2201,7 @@ index 784bbde..246b66d 100644 |
2205 | for (j = 0; j < crtc_info->outputs->len; j++) |
2206 | { |
2207 | MetaOutput *output = ((MetaOutput**) crtc_info->outputs->pdata)[j]; |
2208 | -@@ -315,7 +421,7 @@ is_assignments_changed (MetaMonitorManager *manager, |
2209 | +@@ -359,7 +465,7 @@ is_assignments_changed (MetaMonitorManager *manager, |
2210 | { |
2211 | MetaCrtc *crtc = l->data; |
2212 | |
2213 | @@ -2213,7 +2210,7 @@ index 784bbde..246b66d 100644 |
2214 | return TRUE; |
2215 | } |
2216 | |
2217 | -@@ -331,6 +437,32 @@ is_assignments_changed (MetaMonitorManager *manager, |
2218 | +@@ -375,6 +481,32 @@ is_assignments_changed (MetaMonitorManager *manager, |
2219 | return TRUE; |
2220 | } |
2221 | |
2222 | @@ -2246,7 +2243,7 @@ index 784bbde..246b66d 100644 |
2223 | return FALSE; |
2224 | } |
2225 | |
2226 | -@@ -343,33 +475,57 @@ apply_crtc_assignments (MetaMonitorManager *manager, |
2227 | +@@ -387,33 +519,57 @@ apply_crtc_assignments (MetaMonitorManager *manager, |
2228 | unsigned int n_outputs) |
2229 | { |
2230 | MetaMonitorManagerXrandr *manager_xrandr = META_MONITOR_MANAGER_XRANDR (manager); |
2231 | @@ -2311,7 +2308,7 @@ index 784bbde..246b66d 100644 |
2232 | } |
2233 | |
2234 | /* Second disable all newly disabled CRTCs, or CRTCs that in the previous |
2235 | -@@ -394,12 +550,16 @@ apply_crtc_assignments (MetaMonitorManager *manager, |
2236 | +@@ -438,12 +594,16 @@ apply_crtc_assignments (MetaMonitorManager *manager, |
2237 | 0, 0, XCB_NONE, |
2238 | XCB_RANDR_ROTATION_ROTATE_0, |
2239 | NULL, 0); |
2240 | @@ -2328,7 +2325,7 @@ index 784bbde..246b66d 100644 |
2241 | } |
2242 | } |
2243 | |
2244 | -@@ -424,25 +584,20 @@ apply_crtc_assignments (MetaMonitorManager *manager, |
2245 | +@@ -468,25 +628,20 @@ apply_crtc_assignments (MetaMonitorManager *manager, |
2246 | 0, 0, XCB_NONE, |
2247 | XCB_RANDR_ROTATION_ROTATE_0, |
2248 | NULL, 0); |
2249 | @@ -2360,7 +2357,7 @@ index 784bbde..246b66d 100644 |
2250 | |
2251 | for (i = 0; i < n_crtcs; i++) |
2252 | { |
2253 | -@@ -455,12 +610,21 @@ apply_crtc_assignments (MetaMonitorManager *manager, |
2254 | +@@ -499,12 +654,21 @@ apply_crtc_assignments (MetaMonitorManager *manager, |
2255 | g_autofree xcb_randr_output_t *output_ids = NULL; |
2256 | unsigned int j, n_output_ids; |
2257 | xcb_randr_rotation_t rotation; |
2258 | @@ -2382,7 +2379,7 @@ index 784bbde..246b66d 100644 |
2259 | for (j = 0; j < n_output_ids; j++) |
2260 | { |
2261 | MetaOutput *output; |
2262 | -@@ -473,6 +637,20 @@ apply_crtc_assignments (MetaMonitorManager *manager, |
2263 | +@@ -517,6 +681,20 @@ apply_crtc_assignments (MetaMonitorManager *manager, |
2264 | output_ids[j] = output->winsys_id; |
2265 | } |
2266 | |
2267 | @@ -2403,7 +2400,7 @@ index 784bbde..246b66d 100644 |
2268 | rotation = meta_monitor_transform_to_xrandr (crtc_info->transform); |
2269 | if (!xrandr_set_crtc_config (manager_xrandr, |
2270 | crtc, |
2271 | -@@ -508,6 +686,7 @@ apply_crtc_assignments (MetaMonitorManager *manager, |
2272 | +@@ -552,6 +730,7 @@ apply_crtc_assignments (MetaMonitorManager *manager, |
2273 | crtc->rect.height = height; |
2274 | crtc->current_mode = mode; |
2275 | crtc->transform = crtc_info->transform; |
2276 | @@ -2411,7 +2408,7 @@ index 784bbde..246b66d 100644 |
2277 | } |
2278 | } |
2279 | |
2280 | -@@ -563,14 +742,61 @@ meta_monitor_manager_xrandr_ensure_initial_config (MetaMonitorManager *manager) |
2281 | +@@ -607,14 +786,61 @@ meta_monitor_manager_xrandr_ensure_initial_config (MetaMonitorManager *manager) |
2282 | } |
2283 | |
2284 | static void |
2285 | @@ -2477,7 +2474,7 @@ index 784bbde..246b66d 100644 |
2286 | } |
2287 | |
2288 | static gboolean |
2289 | -@@ -584,7 +810,7 @@ meta_monitor_manager_xrandr_apply_monitors_config (MetaMonitorManager *mana |
2290 | +@@ -628,7 +854,7 @@ meta_monitor_manager_xrandr_apply_monitors_config (MetaMonitorManager *mana |
2291 | |
2292 | if (!config) |
2293 | { |
2294 | @@ -2486,7 +2483,7 @@ index 784bbde..246b66d 100644 |
2295 | return TRUE; |
2296 | } |
2297 | |
2298 | -@@ -609,16 +835,26 @@ meta_monitor_manager_xrandr_apply_monitors_config (MetaMonitorManager *mana |
2299 | +@@ -653,16 +879,26 @@ meta_monitor_manager_xrandr_apply_monitors_config (MetaMonitorManager *mana |
2300 | (MetaOutputInfo **) output_infos->pdata, |
2301 | output_infos->len)) |
2302 | { |
2303 | @@ -2514,7 +2511,7 @@ index 784bbde..246b66d 100644 |
2304 | } |
2305 | } |
2306 | |
2307 | -@@ -748,7 +984,8 @@ meta_monitor_manager_xrandr_tiled_monitor_added (MetaMonitorManager *manager, |
2308 | +@@ -792,7 +1028,8 @@ meta_monitor_manager_xrandr_tiled_monitor_added (MetaMonitorManager *manager, |
2309 | GList *l; |
2310 | int i; |
2311 | |
2312 | @@ -2524,7 +2521,7 @@ index 784bbde..246b66d 100644 |
2313 | return; |
2314 | |
2315 | product = meta_monitor_get_product (monitor); |
2316 | -@@ -797,7 +1034,8 @@ meta_monitor_manager_xrandr_tiled_monitor_removed (MetaMonitorManager *manager, |
2317 | +@@ -841,7 +1078,8 @@ meta_monitor_manager_xrandr_tiled_monitor_removed (MetaMonitorManager *manager, |
2318 | |
2319 | int monitor_count; |
2320 | |
2321 | @@ -2534,7 +2531,7 @@ index 784bbde..246b66d 100644 |
2322 | return; |
2323 | |
2324 | monitor_xrandr_data = meta_monitor_xrandr_data_from_monitor (monitor); |
2325 | -@@ -815,10 +1053,12 @@ meta_monitor_manager_xrandr_tiled_monitor_removed (MetaMonitorManager *manager, |
2326 | +@@ -859,10 +1097,12 @@ meta_monitor_manager_xrandr_tiled_monitor_removed (MetaMonitorManager *manager, |
2327 | static void |
2328 | meta_monitor_manager_xrandr_init_monitors (MetaMonitorManagerXrandr *manager_xrandr) |
2329 | { |
2330 | @@ -2548,7 +2545,7 @@ index 784bbde..246b66d 100644 |
2331 | return; |
2332 | |
2333 | /* delete any tiled monitors setup, as mutter will want to recreate |
2334 | -@@ -849,83 +1089,26 @@ meta_monitor_manager_xrandr_is_transform_handled (MetaMonitorManager *manager, |
2335 | +@@ -893,83 +1133,26 @@ meta_monitor_manager_xrandr_is_transform_handled (MetaMonitorManager *manager, |
2336 | return TRUE; |
2337 | } |
2338 | |
2339 | @@ -2646,7 +2643,7 @@ index 784bbde..246b66d 100644 |
2340 | } |
2341 | |
2342 | static float * |
2343 | -@@ -935,21 +1118,35 @@ meta_monitor_manager_xrandr_calculate_supported_scales (MetaMonitorManager |
2344 | +@@ -979,21 +1162,35 @@ meta_monitor_manager_xrandr_calculate_supported_scales (MetaMonitorManager |
2345 | MetaMonitorMode *monitor_mode, |
2346 | int *n_supported_scales) |
2347 | { |
2348 | @@ -2692,7 +2689,7 @@ index 784bbde..246b66d 100644 |
2349 | } |
2350 | |
2351 | static gboolean |
2352 | -@@ -966,9 +1163,34 @@ meta_monitor_manager_xrandr_get_max_screen_size (MetaMonitorManager *manager, |
2353 | +@@ -1010,9 +1207,34 @@ meta_monitor_manager_xrandr_get_max_screen_size (MetaMonitorManager *manager, |
2354 | return TRUE; |
2355 | } |
2356 | |
2357 | @@ -2727,7 +2724,7 @@ index 784bbde..246b66d 100644 |
2358 | return META_LOGICAL_MONITOR_LAYOUT_MODE_PHYSICAL; |
2359 | } |
2360 | |
2361 | -@@ -978,10 +1200,11 @@ meta_monitor_manager_xrandr_constructed (GObject *object) |
2362 | +@@ -1022,10 +1244,11 @@ meta_monitor_manager_xrandr_constructed (GObject *object) |
2363 | MetaMonitorManagerXrandr *manager_xrandr = |
2364 | META_MONITOR_MANAGER_XRANDR (object); |
2365 | MetaMonitorManager *manager = META_MONITOR_MANAGER (manager_xrandr); |
2366 | @@ -2742,7 +2739,7 @@ index 784bbde..246b66d 100644 |
2367 | |
2368 | manager_xrandr->gpu = META_GPU (meta_gpu_xrandr_new (manager_xrandr)); |
2369 | meta_monitor_manager_add_gpu (manager, manager_xrandr->gpu); |
2370 | -@@ -1003,19 +1226,19 @@ meta_monitor_manager_xrandr_constructed (GObject *object) |
2371 | +@@ -1047,19 +1270,19 @@ meta_monitor_manager_xrandr_constructed (GObject *object) |
2372 | | RRCrtcChangeNotifyMask |
2373 | | RROutputPropertyNotifyMask); |
2374 | |
2375 | @@ -2770,7 +2767,7 @@ index 784bbde..246b66d 100644 |
2376 | G_OBJECT_CLASS (meta_monitor_manager_xrandr_parent_class)->constructed (object); |
2377 | } |
2378 | |
2379 | -@@ -1026,7 +1249,6 @@ meta_monitor_manager_xrandr_finalize (GObject *object) |
2380 | +@@ -1070,7 +1293,6 @@ meta_monitor_manager_xrandr_finalize (GObject *object) |
2381 | |
2382 | g_clear_object (&manager_xrandr->gpu); |
2383 | g_hash_table_destroy (manager_xrandr->tiled_monitor_atoms); |
2384 | @@ -2778,15 +2775,15 @@ index 784bbde..246b66d 100644 |
2385 | |
2386 | G_OBJECT_CLASS (meta_monitor_manager_xrandr_parent_class)->finalize (object); |
2387 | } |
2388 | -@@ -1048,6 +1270,7 @@ meta_monitor_manager_xrandr_class_init (MetaMonitorManagerXrandrClass *klass) |
2389 | - manager_class->read_edid = meta_monitor_manager_xrandr_read_edid; |
2390 | +@@ -1093,6 +1315,7 @@ meta_monitor_manager_xrandr_class_init (MetaMonitorManagerXrandrClass *klass) |
2391 | + manager_class->read_current_state = meta_monitor_manager_xrandr_read_current_state; |
2392 | manager_class->ensure_initial_config = meta_monitor_manager_xrandr_ensure_initial_config; |
2393 | manager_class->apply_monitors_config = meta_monitor_manager_xrandr_apply_monitors_config; |
2394 | + manager_class->update_screen_size_derived = meta_monitor_manager_xrandr_update_screen_size_derived; |
2395 | manager_class->set_power_save_mode = meta_monitor_manager_xrandr_set_power_save_mode; |
2396 | manager_class->change_backlight = meta_monitor_manager_xrandr_change_backlight; |
2397 | manager_class->get_crtc_gamma = meta_monitor_manager_xrandr_get_crtc_gamma; |
2398 | -@@ -1108,7 +1331,7 @@ meta_monitor_manager_xrandr_handle_xevent (MetaMonitorManagerXrandr *manager_xra |
2399 | +@@ -1153,7 +1376,7 @@ meta_monitor_manager_xrandr_handle_xevent (MetaMonitorManagerXrandr *manager_xra |
2400 | config = NULL; |
2401 | } |
2402 | |
2403 | @@ -2931,7 +2928,7 @@ index 0854a19..e412784 100644 |
2404 | } |
2405 | } |
2406 | diff --git a/src/core/boxes-private.h b/src/core/boxes-private.h |
2407 | -index 24c596b..f92837a 100644 |
2408 | +index 74f5c54..0b37f0f 100644 |
2409 | --- a/src/core/boxes-private.h |
2410 | +++ b/src/core/boxes-private.h |
2411 | @@ -157,6 +157,10 @@ gboolean meta_rectangle_overlaps_with_region ( |
2412 | @@ -2946,7 +2943,7 @@ index 24c596b..f92837a 100644 |
2413 | * but make it no smaller than min_size. |
2414 | */ |
2415 | diff --git a/src/core/boxes.c b/src/core/boxes.c |
2416 | -index 87f2d5d..95978c1 100644 |
2417 | +index 4bb961c..69fd45f 100644 |
2418 | --- a/src/core/boxes.c |
2419 | +++ b/src/core/boxes.c |
2420 | @@ -911,6 +911,27 @@ meta_rectangle_overlaps_with_region (const GList *spanning_rects, |
2421 | @@ -2966,7 +2963,7 @@ index 87f2d5d..95978c1 100644 |
2422 | + if (rect == other || meta_rectangle_equal (rect, other)) |
2423 | + continue; |
2424 | + |
2425 | -+ if (meta_rectangle_is_adjecent_to ((MetaRectangle *) rect, other)) |
2426 | ++ if (meta_rectangle_is_adjacent_to ((MetaRectangle *) rect, other)) |
2427 | + { |
2428 | + return TRUE; |
2429 | + } |
2430 | @@ -2978,7 +2975,7 @@ index 87f2d5d..95978c1 100644 |
2431 | void |
2432 | meta_rectangle_clamp_to_fit_into_region (const GList *spanning_rects, |
2433 | diff --git a/src/core/window.c b/src/core/window.c |
2434 | -index 62b2df8..d1cf7c3 100644 |
2435 | +index d2c2450..bb2e459 100644 |
2436 | --- a/src/core/window.c |
2437 | +++ b/src/core/window.c |
2438 | @@ -226,6 +226,7 @@ enum |
2439 | diff --git a/debian/rules b/debian/rules |
2440 | index 4e6d9c1..2047ed8 100755 |
2441 | --- a/debian/rules |
2442 | +++ b/debian/rules |
2443 | @@ -4,7 +4,7 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+all |
2444 | export DEB_LDFLAGS_MAINT_APPEND = -Wl,-O1 -Wl,--as-needed |
2445 | |
2446 | %: |
2447 | - dh $@ --with gir,gnome --buildsystem=meson |
2448 | + dh $@ |
2449 | |
2450 | override_dh_autoreconf: |
2451 | dh_autoreconf --as-needed |
2452 | diff --git a/meson.build b/meson.build |
2453 | index dc210e6..6ce9e59 100644 |
2454 | --- a/meson.build |
2455 | +++ b/meson.build |
2456 | @@ -178,7 +178,7 @@ if have_native_backend |
2457 | libgbm_dep = dependency('gbm', version: gbm_req) |
2458 | libinput_dep = dependency('libinput', version: libinput_req) |
2459 | |
2460 | - libsystemd_dep = dependency('libsystemd') |
2461 | + libsystemd_dep = dependency('libsystemd', required: false) |
2462 | if libsystemd_dep.found() |
2463 | logind_provider_dep = libsystemd_dep |
2464 | else |
2465 | diff --git a/po/ar.po b/po/ar.po |
2466 | index 4f26451..82df3c2 100644 |
2467 | --- a/po/ar.po |
2468 | +++ b/po/ar.po |
2469 | @@ -4,15 +4,14 @@ |
2470 | # Arafat Medini <lumina@silverpen.de>, 2003. |
2471 | # Abdulaziz Al-Arfaj <alarfaj0@yahoo.com>, 2004. |
2472 | # Djihed Afifi <djihed@gmail.com>, 2006. |
2473 | -# Khaled Hosny <khaledhosny@eglug.org>, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2017. |
2474 | +# Khaled Hosny <khaledhosny@eglug.org>, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2017, 2019. |
2475 | # Anas Afif Emad <anas.e87@gmail.com>, 2008. |
2476 | msgid "" |
2477 | msgstr "" |
2478 | "Project-Id-Version: metacity.HEAD\n" |
2479 | -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mutter&" |
2480 | -"keywords=I18N+L10N&component=general\n" |
2481 | -"POT-Creation-Date: 2017-11-03 10:20+0200\n" |
2482 | -"PO-Revision-Date: 2017-11-03 10:22+0200\n" |
2483 | +"Report-Msgid-Bugs-To: \n" |
2484 | +"POT-Creation-Date: 2019-03-15 23:40+0200\n" |
2485 | +"PO-Revision-Date: 2019-03-15 23:42+0200\n" |
2486 | "Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n" |
2487 | "Language-Team: Arabic <doc@arabeyes.org>\n" |
2488 | "Language: ar\n" |
2489 | @@ -21,126 +20,599 @@ msgstr "" |
2490 | "Content-Transfer-Encoding: 8bit\n" |
2491 | "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " |
2492 | "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" |
2493 | -"X-Generator: Virtaal 1.0.0-beta1\n" |
2494 | +"X-Generator: Virtaal 0.7.1\n" |
2495 | "X-Project-Style: gnome\n" |
2496 | |
2497 | +#: data/50-mutter-navigation.xml:6 |
2498 | +msgid "Navigation" |
2499 | +msgstr "الإبحار" |
2500 | + |
2501 | +#: data/50-mutter-navigation.xml:9 |
2502 | +msgid "Move window to workspace 1" |
2503 | +msgstr "انقل النافذة إلى مساحة العمل 1" |
2504 | + |
2505 | +#: data/50-mutter-navigation.xml:12 |
2506 | +msgid "Move window to workspace 2" |
2507 | +msgstr "انقل النافذة إلى مساحة العمل 2" |
2508 | + |
2509 | +#: data/50-mutter-navigation.xml:15 |
2510 | +msgid "Move window to workspace 3" |
2511 | +msgstr "انقل النافذة إلى مساحة العمل 3" |
2512 | + |
2513 | +#: data/50-mutter-navigation.xml:18 |
2514 | +msgid "Move window to workspace 4" |
2515 | +msgstr "انقل النافذة إلى مساحة العمل 4" |
2516 | + |
2517 | +#: data/50-mutter-navigation.xml:21 |
2518 | +msgid "Move window to last workspace" |
2519 | +msgstr "انقل النافذة إلى مساحة العمل الأخيرة" |
2520 | + |
2521 | +#: data/50-mutter-navigation.xml:24 |
2522 | +msgid "Move window one workspace up" |
2523 | +msgstr "انقل النافذة مساحة عمل واحدة إلى الأعلى" |
2524 | + |
2525 | +#: data/50-mutter-navigation.xml:27 |
2526 | +msgid "Move window one workspace down" |
2527 | +msgstr "انقل النافذة مساحة عمل واحدة إلى الأسفل" |
2528 | + |
2529 | +#: data/50-mutter-navigation.xml:30 |
2530 | +msgid "Move window one monitor to the left" |
2531 | +msgstr "انقل النافذة شاشة واحدة إلى اليسار" |
2532 | + |
2533 | +#: data/50-mutter-navigation.xml:33 |
2534 | +msgid "Move window one monitor to the right" |
2535 | +msgstr "انقل النافذة شاشة واحدة إلى اليمين" |
2536 | + |
2537 | +#: data/50-mutter-navigation.xml:36 |
2538 | +msgid "Move window one monitor up" |
2539 | +msgstr "انقل النافذة شاشة واحدة إلى الأعلى" |
2540 | + |
2541 | +#: data/50-mutter-navigation.xml:39 |
2542 | +msgid "Move window one monitor down" |
2543 | +msgstr "انقل النافذة شاشة واحدة إلى الأسفل" |
2544 | + |
2545 | +#: data/50-mutter-navigation.xml:43 |
2546 | +msgid "Switch applications" |
2547 | +msgstr "تنقل بين التطبيقات" |
2548 | + |
2549 | +#: data/50-mutter-navigation.xml:48 |
2550 | +msgid "Switch to previous application" |
2551 | +msgstr "انتقل إلى التطبيق السابق" |
2552 | + |
2553 | +#: data/50-mutter-navigation.xml:52 |
2554 | +msgid "Switch windows" |
2555 | +msgstr "تنقل بين النوافذ" |
2556 | + |
2557 | +#: data/50-mutter-navigation.xml:57 |
2558 | +msgid "Switch to previous window" |
2559 | +msgstr "انتقل إلى النافذة السابقة" |
2560 | + |
2561 | +#: data/50-mutter-navigation.xml:61 |
2562 | +msgid "Switch windows of an application" |
2563 | +msgstr "تنقل بين نوافذ التطبيق" |
2564 | + |
2565 | +#: data/50-mutter-navigation.xml:66 |
2566 | +msgid "Switch to previous window of an application" |
2567 | +msgstr "انتقل إلى نافذة التطبيق السابقة" |
2568 | + |
2569 | +#: data/50-mutter-navigation.xml:70 |
2570 | +msgid "Switch system controls" |
2571 | +msgstr "تنقل بين تحكمات النظام" |
2572 | + |
2573 | +#: data/50-mutter-navigation.xml:75 |
2574 | +msgid "Switch to previous system control" |
2575 | +msgstr "انتقل إلى تحكم النظام السابق" |
2576 | + |
2577 | +#: data/50-mutter-navigation.xml:79 |
2578 | +msgid "Switch windows directly" |
2579 | +msgstr "تنقل مباشرة بين النوافذ" |
2580 | + |
2581 | +#: data/50-mutter-navigation.xml:84 |
2582 | +msgid "Switch directly to previous window" |
2583 | +msgstr "انتقل مباشرة إلى النافذة السابقة" |
2584 | + |
2585 | +#: data/50-mutter-navigation.xml:88 |
2586 | +msgid "Switch windows of an app directly" |
2587 | +msgstr "تنقل مباشرة بين نوافذ التطبيق" |
2588 | + |
2589 | +#: data/50-mutter-navigation.xml:93 |
2590 | +msgid "Switch directly to previous window of an app" |
2591 | +msgstr "انتقل مباشرة إلى نافذة التطبيق السابقة" |
2592 | + |
2593 | +#: data/50-mutter-navigation.xml:97 |
2594 | +msgid "Switch system controls directly" |
2595 | +msgstr "تنقل مباشرة بين تحكمات النظام" |
2596 | + |
2597 | +#: data/50-mutter-navigation.xml:102 |
2598 | +msgid "Switch directly to previous system control" |
2599 | +msgstr "انتقل مباشرة إلى تحكم النظام السابق" |
2600 | + |
2601 | +#: data/50-mutter-navigation.xml:105 |
2602 | +msgid "Hide all normal windows" |
2603 | +msgstr "أخفِ كل النوافذ العادية" |
2604 | + |
2605 | +#: data/50-mutter-navigation.xml:108 |
2606 | +msgid "Switch to workspace 1" |
2607 | +msgstr "انتقل إلى مساحة العمل 1" |
2608 | + |
2609 | +#: data/50-mutter-navigation.xml:111 |
2610 | +msgid "Switch to workspace 2" |
2611 | +msgstr "انتقل إلى مساحة العمل 2" |
2612 | + |
2613 | +#: data/50-mutter-navigation.xml:114 |
2614 | +msgid "Switch to workspace 3" |
2615 | +msgstr "انتقل إلى مساحة العمل 3" |
2616 | + |
2617 | +#: data/50-mutter-navigation.xml:117 |
2618 | +msgid "Switch to workspace 4" |
2619 | +msgstr "انتقل إلى مساحة العمل 4" |
2620 | + |
2621 | +#: data/50-mutter-navigation.xml:120 |
2622 | +msgid "Switch to last workspace" |
2623 | +msgstr "انتقل إلى مساحة العمل الأخيرة" |
2624 | + |
2625 | +#: data/50-mutter-navigation.xml:123 |
2626 | +msgid "Move to workspace above" |
2627 | +msgstr "انقل لمساحة العمل أعلى" |
2628 | + |
2629 | +#: data/50-mutter-navigation.xml:126 |
2630 | +msgid "Move to workspace below" |
2631 | +msgstr "انقل لمساحة العمل أسفل" |
2632 | + |
2633 | +#: data/50-mutter-system.xml:6 data/50-mutter-wayland.xml:6 |
2634 | +msgid "System" |
2635 | +msgstr "النظام" |
2636 | + |
2637 | +#: data/50-mutter-system.xml:8 |
2638 | +msgid "Show the run command prompt" |
2639 | +msgstr "أظهر محث تشغيل أمر" |
2640 | + |
2641 | +#: data/50-mutter-system.xml:10 |
2642 | +msgid "Show the activities overview" |
2643 | +msgstr "أظهر نظرة عامة على الأنشطة" |
2644 | + |
2645 | +#: data/50-mutter-wayland.xml:8 |
2646 | +msgid "Restore the keyboard shortcuts" |
2647 | +msgstr "استعد اختصارات لوحة المفاتيح" |
2648 | + |
2649 | +#: data/50-mutter-windows.xml:6 |
2650 | +msgid "Windows" |
2651 | +msgstr "النوافذ" |
2652 | + |
2653 | +#: data/50-mutter-windows.xml:8 |
2654 | +msgid "Activate the window menu" |
2655 | +msgstr "فعّل قائمة النافذة" |
2656 | + |
2657 | +#: data/50-mutter-windows.xml:10 |
2658 | +msgid "Toggle fullscreen mode" |
2659 | +msgstr "بدّل نمط ملء الشاشة" |
2660 | + |
2661 | +#: data/50-mutter-windows.xml:12 |
2662 | +msgid "Toggle maximization state" |
2663 | +msgstr "بدّل حالة التكبير" |
2664 | + |
2665 | +#: data/50-mutter-windows.xml:14 |
2666 | +msgid "Maximize window" |
2667 | +msgstr "كبّر النّافذة" |
2668 | + |
2669 | +#: data/50-mutter-windows.xml:16 |
2670 | +msgid "Restore window" |
2671 | +msgstr "استعد النّافذة" |
2672 | + |
2673 | +#: data/50-mutter-windows.xml:18 |
2674 | +msgid "Close window" |
2675 | +msgstr "أغلق النّافذة" |
2676 | + |
2677 | +#: data/50-mutter-windows.xml:20 |
2678 | +msgid "Hide window" |
2679 | +msgstr "أخفِ النّافذة" |
2680 | + |
2681 | +#: data/50-mutter-windows.xml:22 |
2682 | +msgid "Move window" |
2683 | +msgstr "انقل النّافذة" |
2684 | + |
2685 | +#: data/50-mutter-windows.xml:24 |
2686 | +msgid "Resize window" |
2687 | +msgstr "حجّم النّافذة" |
2688 | + |
2689 | +#: data/50-mutter-windows.xml:27 |
2690 | +msgid "Toggle window on all workspaces or one" |
2691 | +msgstr "بدّل حالة ظهور النافذة على جميع مساحات العمل أو واحدة منها" |
2692 | + |
2693 | +#: data/50-mutter-windows.xml:29 |
2694 | +msgid "Raise window if covered, otherwise lower it" |
2695 | +msgstr "ارفع النافذة إذا كانت أخرى تغطيها، أو أخفضها في ما عدا ذلك" |
2696 | + |
2697 | +#: data/50-mutter-windows.xml:31 |
2698 | +msgid "Raise window above other windows" |
2699 | +msgstr "ارفع النافذة فوق النوافذ الأخرى" |
2700 | + |
2701 | +#: data/50-mutter-windows.xml:33 |
2702 | +msgid "Lower window below other windows" |
2703 | +msgstr "اخفض النافذة تحت النوافذ الأخرى" |
2704 | + |
2705 | +#: data/50-mutter-windows.xml:35 |
2706 | +msgid "Maximize window vertically" |
2707 | +msgstr "كبّر النافذة رأسيا" |
2708 | + |
2709 | +#: data/50-mutter-windows.xml:37 |
2710 | +msgid "Maximize window horizontally" |
2711 | +msgstr "كبّر النافذة أفقيا" |
2712 | + |
2713 | +#: data/50-mutter-windows.xml:41 |
2714 | +msgid "View split on left" |
2715 | +msgstr "المنظور مقسوم على اليمين" |
2716 | + |
2717 | +#: data/50-mutter-windows.xml:45 |
2718 | +msgid "View split on right" |
2719 | +msgstr "المنظور مقسوم على اليسار" |
2720 | + |
2721 | +#: data/mutter.desktop.in:4 |
2722 | +msgid "Mutter" |
2723 | +msgstr "مَتَر" |
2724 | + |
2725 | +#: data/org.gnome.mutter.gschema.xml.in:7 |
2726 | +msgid "Modifier to use for extended window management operations" |
2727 | +msgstr "المغير الذي سيُستعمل لتمديد عمليات إدارة النوافذ " |
2728 | + |
2729 | +#: data/org.gnome.mutter.gschema.xml.in:8 |
2730 | +msgid "" |
2731 | +"This key will initiate the “overlay”, which is a combination window overview " |
2732 | +"and application launching system. The default is intended to be the “Windows " |
2733 | +"key” on PC hardware. It’s expected that this binding either the default or " |
2734 | +"set to the empty string." |
2735 | +msgstr "" |
2736 | + |
2737 | +#: data/org.gnome.mutter.gschema.xml.in:20 |
2738 | +#, fuzzy |
2739 | +msgid "Attach modal dialogs" |
2740 | +msgstr "صندوق حوار سائد" |
2741 | + |
2742 | +#: data/org.gnome.mutter.gschema.xml.in:21 |
2743 | +msgid "" |
2744 | +"When true, instead of having independent titlebars, modal dialogs appear " |
2745 | +"attached to the titlebar of the parent window and are moved together with " |
2746 | +"the parent window." |
2747 | +msgstr "" |
2748 | + |
2749 | +#: data/org.gnome.mutter.gschema.xml.in:30 |
2750 | +msgid "Enable edge tiling when dropping windows on screen edges" |
2751 | +msgstr "" |
2752 | + |
2753 | +#: data/org.gnome.mutter.gschema.xml.in:31 |
2754 | +msgid "" |
2755 | +"If enabled, dropping windows on vertical screen edges maximizes them " |
2756 | +"vertically and resizes them horizontally to cover half of the available " |
2757 | +"area. Dropping windows on the top screen edge maximizes them completely." |
2758 | +msgstr "" |
2759 | + |
2760 | +#: data/org.gnome.mutter.gschema.xml.in:40 |
2761 | +msgid "Workspaces are managed dynamically" |
2762 | +msgstr "" |
2763 | + |
2764 | +#: data/org.gnome.mutter.gschema.xml.in:41 |
2765 | +msgid "" |
2766 | +"Determines whether workspaces are managed dynamically or whether there’s a " |
2767 | +"static number of workspaces (determined by the num-workspaces key in org." |
2768 | +"gnome.desktop.wm.preferences)." |
2769 | +msgstr "" |
2770 | + |
2771 | +#: data/org.gnome.mutter.gschema.xml.in:50 |
2772 | +msgid "Workspaces only on primary" |
2773 | +msgstr "" |
2774 | + |
2775 | +#: data/org.gnome.mutter.gschema.xml.in:51 |
2776 | +msgid "" |
2777 | +"Determines whether workspace switching should happen for windows on all " |
2778 | +"monitors or only for windows on the primary monitor." |
2779 | +msgstr "" |
2780 | + |
2781 | +#: data/org.gnome.mutter.gschema.xml.in:59 |
2782 | +msgid "No tab popup" |
2783 | +msgstr "" |
2784 | + |
2785 | +#: data/org.gnome.mutter.gschema.xml.in:60 |
2786 | +msgid "" |
2787 | +"Determines whether the use of popup and highlight frame should be disabled " |
2788 | +"for window cycling." |
2789 | +msgstr "" |
2790 | + |
2791 | +#: data/org.gnome.mutter.gschema.xml.in:68 |
2792 | +msgid "Delay focus changes until the pointer stops moving" |
2793 | +msgstr "" |
2794 | + |
2795 | +#: data/org.gnome.mutter.gschema.xml.in:69 |
2796 | +msgid "" |
2797 | +"If set to true, and the focus mode is either “sloppy” or “mouse” then the " |
2798 | +"focus will not be changed immediately when entering a window, but only after " |
2799 | +"the pointer stops moving." |
2800 | +msgstr "" |
2801 | + |
2802 | +#: data/org.gnome.mutter.gschema.xml.in:79 |
2803 | +msgid "Draggable border width" |
2804 | +msgstr "" |
2805 | + |
2806 | +#: data/org.gnome.mutter.gschema.xml.in:80 |
2807 | +msgid "" |
2808 | +"The amount of total draggable borders. If the theme’s visible borders are " |
2809 | +"not enough, invisible borders will be added to meet this value." |
2810 | +msgstr "" |
2811 | + |
2812 | +#: data/org.gnome.mutter.gschema.xml.in:89 |
2813 | +msgid "Auto maximize nearly monitor sized windows" |
2814 | +msgstr "" |
2815 | + |
2816 | +#: data/org.gnome.mutter.gschema.xml.in:90 |
2817 | +msgid "" |
2818 | +"If enabled, new windows that are initially the size of the monitor " |
2819 | +"automatically get maximized." |
2820 | +msgstr "" |
2821 | + |
2822 | +#: data/org.gnome.mutter.gschema.xml.in:98 |
2823 | +msgid "Place new windows in the center" |
2824 | +msgstr "" |
2825 | + |
2826 | +#: data/org.gnome.mutter.gschema.xml.in:99 |
2827 | +msgid "" |
2828 | +"When true, the new windows will always be put in the center of the active " |
2829 | +"screen of the monitor." |
2830 | +msgstr "" |
2831 | + |
2832 | +#: data/org.gnome.mutter.gschema.xml.in:107 |
2833 | +msgid "Enable experimental features" |
2834 | +msgstr "" |
2835 | + |
2836 | +#: data/org.gnome.mutter.gschema.xml.in:108 |
2837 | +msgid "" |
2838 | +"To enable experimental features, add the feature keyword to the list. " |
2839 | +"Whether the feature requires restarting the compositor depends on the given " |
2840 | +"feature. Any experimental feature is not required to still be available, or " |
2841 | +"configurable. Don’t expect adding anything in this setting to be future " |
2842 | +"proof. Currently possible keywords: • “scale-monitor-framebuffer” — makes " |
2843 | +"mutter default to layout logical monitors in a logical pixel coordinate " |
2844 | +"space, while scaling monitor framebuffers instead of window content, to " |
2845 | +"manage HiDPI monitors. Does not require a restart." |
2846 | +msgstr "" |
2847 | + |
2848 | +#: data/org.gnome.mutter.gschema.xml.in:141 |
2849 | +msgid "Select window from tab popup" |
2850 | +msgstr "" |
2851 | + |
2852 | +#: data/org.gnome.mutter.gschema.xml.in:146 |
2853 | +msgid "Cancel tab popup" |
2854 | +msgstr "" |
2855 | + |
2856 | +#: data/org.gnome.mutter.gschema.xml.in:151 |
2857 | +#, fuzzy |
2858 | +msgid "Switch monitor configurations" |
2859 | +msgstr "غيّر الشاشة" |
2860 | + |
2861 | +#: data/org.gnome.mutter.gschema.xml.in:156 |
2862 | +msgid "Rotates the built-in monitor configuration" |
2863 | +msgstr "" |
2864 | + |
2865 | +#: data/org.gnome.mutter.wayland.gschema.xml.in:6 |
2866 | +#, fuzzy |
2867 | +msgid "Switch to VT 1" |
2868 | +msgstr "انتقل إلى مساحة العمل 1" |
2869 | + |
2870 | +#: data/org.gnome.mutter.wayland.gschema.xml.in:10 |
2871 | +#, fuzzy |
2872 | +msgid "Switch to VT 2" |
2873 | +msgstr "انتقل إلى مساحة العمل 2" |
2874 | + |
2875 | +#: data/org.gnome.mutter.wayland.gschema.xml.in:14 |
2876 | +#, fuzzy |
2877 | +msgid "Switch to VT 3" |
2878 | +msgstr "انتقل إلى مساحة العمل 3" |
2879 | + |
2880 | +#: data/org.gnome.mutter.wayland.gschema.xml.in:18 |
2881 | +#, fuzzy |
2882 | +msgid "Switch to VT 4" |
2883 | +msgstr "انتقل إلى مساحة العمل 4" |
2884 | + |
2885 | +#: data/org.gnome.mutter.wayland.gschema.xml.in:22 |
2886 | +#, fuzzy |
2887 | +msgid "Switch to VT 5" |
2888 | +msgstr "انتقل إلى مساحة العمل 5" |
2889 | + |
2890 | +#: data/org.gnome.mutter.wayland.gschema.xml.in:26 |
2891 | +#, fuzzy |
2892 | +msgid "Switch to VT 6" |
2893 | +msgstr "انتقل إلى مساحة العمل 6" |
2894 | + |
2895 | +#: data/org.gnome.mutter.wayland.gschema.xml.in:30 |
2896 | +#, fuzzy |
2897 | +msgid "Switch to VT 7" |
2898 | +msgstr "انتقل إلى مساحة العمل 7" |
2899 | + |
2900 | +#: data/org.gnome.mutter.wayland.gschema.xml.in:34 |
2901 | +#, fuzzy |
2902 | +msgid "Switch to VT 8" |
2903 | +msgstr "انتقل إلى مساحة العمل 8" |
2904 | + |
2905 | +#: data/org.gnome.mutter.wayland.gschema.xml.in:38 |
2906 | +#, fuzzy |
2907 | +msgid "Switch to VT 9" |
2908 | +msgstr "انتقل إلى مساحة العمل 9" |
2909 | + |
2910 | +#: data/org.gnome.mutter.wayland.gschema.xml.in:42 |
2911 | +#, fuzzy |
2912 | +msgid "Switch to VT 10" |
2913 | +msgstr "انتقل إلى مساحة العمل 10" |
2914 | + |
2915 | +#: data/org.gnome.mutter.wayland.gschema.xml.in:46 |
2916 | +#, fuzzy |
2917 | +msgid "Switch to VT 11" |
2918 | +msgstr "انتقل إلى مساحة العمل 11" |
2919 | + |
2920 | +#: data/org.gnome.mutter.wayland.gschema.xml.in:50 |
2921 | +#, fuzzy |
2922 | +msgid "Switch to VT 12" |
2923 | +msgstr "انتقل إلى مساحة العمل 12" |
2924 | + |
2925 | +#: data/org.gnome.mutter.wayland.gschema.xml.in:54 |
2926 | +msgid "Re-enable shortcuts" |
2927 | +msgstr "" |
2928 | + |
2929 | +#: data/org.gnome.mutter.wayland.gschema.xml.in:64 |
2930 | +msgid "Allow grabs with Xwayland" |
2931 | +msgstr "" |
2932 | + |
2933 | +#: data/org.gnome.mutter.wayland.gschema.xml.in:65 |
2934 | +msgid "" |
2935 | +"Allow keyboard grabs issued by X11 applications running in Xwayland to be " |
2936 | +"taken into account. For a X11 grab to be taken into account under Wayland, " |
2937 | +"the client must also either send a specific X11 ClientMessage to the root " |
2938 | +"window or be among the applications white-listed in key “xwayland-grab-" |
2939 | +"access-rules”." |
2940 | +msgstr "" |
2941 | + |
2942 | +#: data/org.gnome.mutter.wayland.gschema.xml.in:77 |
2943 | +msgid "Xwayland applications allowed to issue keyboard grabs" |
2944 | +msgstr "" |
2945 | + |
2946 | +#: data/org.gnome.mutter.wayland.gschema.xml.in:78 |
2947 | +msgid "" |
2948 | +"List the resource names or resource class of X11 windows either allowed or " |
2949 | +"not allowed to issue X11 keyboard grabs under Xwayland. The resource name or " |
2950 | +"resource class of a given X11 window can be obtained using the command " |
2951 | +"“xprop WM_CLASS”. Wildcards “*” and jokers “?” in the values are supported. " |
2952 | +"Values starting with “!” are blacklisted, which has precedence over the " |
2953 | +"whitelist, to revoke applications from the default system list. The default " |
2954 | +"system list includes the following applications: " |
2955 | +"“@XWAYLAND_GRAB_DEFAULT_ACCESS_RULES@” Users can break an existing grab by " |
2956 | +"using the specific keyboard shortcut defined by the keybinding key “restore-" |
2957 | +"shortcuts”." |
2958 | +msgstr "" |
2959 | + |
2960 | #. TRANSLATORS: This string refers to a button that switches between |
2961 | #. * different modes. |
2962 | #. |
2963 | -#: ../src/backends/meta-input-settings.c:2167 |
2964 | +#: src/backends/meta-input-settings.c:2424 |
2965 | #, c-format |
2966 | msgid "Mode Switch (Group %d)" |
2967 | -msgstr "" |
2968 | +msgstr "تغيير الأوضاع (مجموعة %d)" |
2969 | |
2970 | #. TRANSLATORS: This string refers to an action, cycles drawing tablets' |
2971 | #. * mapping through the available outputs. |
2972 | #. |
2973 | -#: ../src/backends/meta-input-settings.c:2190 |
2974 | +#: src/backends/meta-input-settings.c:2447 |
2975 | msgid "Switch monitor" |
2976 | msgstr "غيّر الشاشة" |
2977 | |
2978 | -#: ../src/backends/meta-input-settings.c:2192 |
2979 | +#: src/backends/meta-input-settings.c:2449 |
2980 | msgid "Show on-screen help" |
2981 | msgstr "اعرض المساعدة على الشاشة" |
2982 | |
2983 | -#: ../src/backends/meta-monitor-manager.c:900 |
2984 | +#: src/backends/meta-monitor-manager.c:955 |
2985 | msgid "Built-in display" |
2986 | msgstr "شاشة مدمجة" |
2987 | |
2988 | -#: ../src/backends/meta-monitor-manager.c:923 |
2989 | +#: src/backends/meta-monitor-manager.c:987 |
2990 | msgid "Unknown" |
2991 | msgstr "غير معروفة" |
2992 | |
2993 | -#: ../src/backends/meta-monitor-manager.c:925 |
2994 | +#: src/backends/meta-monitor-manager.c:989 |
2995 | msgid "Unknown Display" |
2996 | msgstr "شاشة غير معروفة" |
2997 | |
2998 | -#. TRANSLATORS: this is a monitor vendor name, followed by a |
2999 | -#. * size in inches, like 'Dell 15"' |
3000 | -#. |
3001 | -#: ../src/backends/meta-monitor-manager.c:933 |
3002 | +#: src/backends/meta-monitor-manager.c:997 |
3003 | #, c-format |
3004 | +msgctxt "" |
3005 | +"This is a monitor vendor name, followed by a size in inches, like 'Dell 15\"'" |
3006 | +msgid "%s %s" |
3007 | +msgstr "%s %s" |
3008 | + |
3009 | +#: src/backends/meta-monitor-manager.c:1005 |
3010 | +#, c-format |
3011 | +msgctxt "" |
3012 | +"This is a monitor vendor name followed by product/model name where size in " |
3013 | +"inches could not be calculated, e.g. Dell U2414H" |
3014 | msgid "%s %s" |
3015 | msgstr "%s %s" |
3016 | |
3017 | #. This probably means that a non-WM compositor like xcompmgr is running; |
3018 | #. * we have no way to get it to exit |
3019 | -#: ../src/compositor/compositor.c:476 |
3020 | +#: src/compositor/compositor.c:482 |
3021 | #, c-format |
3022 | msgid "" |
3023 | "Another compositing manager is already running on screen %i on display “%s”." |
3024 | msgstr "يعمل مدير مزج آخر على الشاشة %i و العرض ”%s“." |
3025 | |
3026 | -#: ../src/core/bell.c:194 |
3027 | +#: src/core/bell.c:192 |
3028 | msgid "Bell event" |
3029 | msgstr "حدث جرس" |
3030 | |
3031 | -#: ../src/core/display.c:608 |
3032 | -#, c-format |
3033 | -msgid "Failed to open X Window System display “%s”\n" |
3034 | -msgstr "فشل فتح عرض نظام نوافذ إكس ”%s“\n" |
3035 | - |
3036 | -#: ../src/core/main.c:189 |
3037 | +#: src/core/main.c:185 |
3038 | msgid "Disable connection to session manager" |
3039 | msgstr "عطّل الاتصال بمدير الجلسة" |
3040 | |
3041 | -#: ../src/core/main.c:195 |
3042 | +#: src/core/main.c:191 |
3043 | msgid "Replace the running window manager" |
3044 | msgstr "استبدل بمدير النوافذ الذي يعمل" |
3045 | |
3046 | -#: ../src/core/main.c:201 |
3047 | +#: src/core/main.c:197 |
3048 | msgid "Specify session management ID" |
3049 | msgstr "حدّد رقم هويّة إدارة الجلسة" |
3050 | |
3051 | -#: ../src/core/main.c:206 |
3052 | +#: src/core/main.c:202 |
3053 | msgid "X Display to use" |
3054 | msgstr "معراض س الذي سيستعمل" |
3055 | |
3056 | -#: ../src/core/main.c:212 |
3057 | +#: src/core/main.c:208 |
3058 | msgid "Initialize session from savefile" |
3059 | msgstr "ابدأ الجلسة من ملف محفوظ" |
3060 | |
3061 | -#: ../src/core/main.c:218 |
3062 | +#: src/core/main.c:214 |
3063 | msgid "Make X calls synchronous" |
3064 | msgstr "اجعل نداءات س متزامنة" |
3065 | |
3066 | -#: ../src/core/main.c:225 |
3067 | +#: src/core/main.c:221 |
3068 | msgid "Run as a wayland compositor" |
3069 | msgstr "" |
3070 | |
3071 | -#: ../src/core/main.c:231 |
3072 | +#: src/core/main.c:227 |
3073 | msgid "Run as a nested compositor" |
3074 | msgstr "" |
3075 | |
3076 | -#: ../src/core/main.c:239 |
3077 | +#: src/core/main.c:233 |
3078 | +msgid "Run wayland compositor without starting Xwayland" |
3079 | +msgstr "" |
3080 | + |
3081 | +#: src/core/main.c:241 |
3082 | msgid "Run as a full display server, rather than nested" |
3083 | msgstr "" |
3084 | |
3085 | +#: src/core/main.c:247 |
3086 | +msgid "Run with X11 backend" |
3087 | +msgstr "" |
3088 | + |
3089 | #. Translators: %s is a window title |
3090 | -#: ../src/core/meta-close-dialog-default.c:147 |
3091 | +#: src/core/meta-close-dialog-default.c:151 |
3092 | #, c-format |
3093 | msgid "“%s” is not responding." |
3094 | msgstr "”%s“ لا يستجيب." |
3095 | |
3096 | -#: ../src/core/meta-close-dialog-default.c:149 |
3097 | +#: src/core/meta-close-dialog-default.c:153 |
3098 | msgid "Application is not responding." |
3099 | msgstr "لا يستجيب التطبيق" |
3100 | |
3101 | -#: ../src/core/meta-close-dialog-default.c:154 |
3102 | +#: src/core/meta-close-dialog-default.c:158 |
3103 | msgid "" |
3104 | "You may choose to wait a short while for it to continue or force the " |
3105 | "application to quit entirely." |
3106 | msgstr "ربما ترغب في الانتظار قليلا ليُكمِل أو إجبار التطبيق على الإنهاء كُلّية." |
3107 | |
3108 | -#: ../src/core/meta-close-dialog-default.c:161 |
3109 | +#: src/core/meta-close-dialog-default.c:165 |
3110 | msgid "_Force Quit" |
3111 | msgstr "أ_جبر الإنهاء" |
3112 | |
3113 | -#: ../src/core/meta-close-dialog-default.c:161 |
3114 | +#: src/core/meta-close-dialog-default.c:165 |
3115 | msgid "_Wait" |
3116 | msgstr "ا_نتظر" |
3117 | |
3118 | -#: ../src/core/mutter.c:39 |
3119 | +#: src/core/mutter.c:38 |
3120 | #, c-format |
3121 | msgid "" |
3122 | "mutter %s\n" |
3123 | @@ -154,43 +626,52 @@ msgstr "" |
3124 | "هذا برنامج حر، راجع المصدر لشروط النسخ.\n" |
3125 | "لا يوجد أي ضمان: و لا حتى ضمان قابلية التسويق أو المناسبة لأي هدف.\n" |
3126 | |
3127 | -#: ../src/core/mutter.c:53 |
3128 | +#: src/core/mutter.c:52 |
3129 | msgid "Print version" |
3130 | msgstr "اطبع الإصدارة" |
3131 | |
3132 | -#: ../src/core/mutter.c:59 |
3133 | +#: src/core/mutter.c:58 |
3134 | msgid "Mutter plugin to use" |
3135 | msgstr "ملحق مَتَر الذي سيُستخدم" |
3136 | |
3137 | -#: ../src/core/prefs.c:1997 |
3138 | +#: src/core/prefs.c:1786 |
3139 | #, c-format |
3140 | msgid "Workspace %d" |
3141 | msgstr "مساحة العمل %d" |
3142 | |
3143 | -#: ../src/core/screen.c:583 |
3144 | +#: src/core/util.c:121 |
3145 | +msgid "Mutter was compiled without support for verbose mode\n" |
3146 | +msgstr "جُمِّع مَتَر دون دعم للنمط المطنب\n" |
3147 | + |
3148 | +#: src/wayland/meta-wayland-tablet-pad.c:567 |
3149 | +#, c-format |
3150 | +msgid "Mode Switch: Mode %d" |
3151 | +msgstr "" |
3152 | + |
3153 | +#: src/x11/meta-x11-display.c:666 |
3154 | #, c-format |
3155 | msgid "" |
3156 | "Display “%s” already has a window manager; try using the --replace option to " |
3157 | "replace the current window manager." |
3158 | msgstr "" |
3159 | -"الشاشة ”%s“ لها مدير نوافذ بالفعل، حاول استعمال خيار التبديل --replace لتحُلّ" |
3160 | -" محلّ مدير النوافذ الحالي." |
3161 | +"الشاشة ”%s“ لها مدير نوافذ بالفعل، حاول استعمال خيار التبديل --replace لتحُلّ " |
3162 | +"محلّ مدير النوافذ الحالي." |
3163 | |
3164 | -#: ../src/core/screen.c:668 |
3165 | -#, c-format |
3166 | -msgid "Screen %d on display “%s” is invalid\n" |
3167 | -msgstr "الشاشة %d على العرض ”%s“ غير صحيحة\n" |
3168 | +#: src/x11/meta-x11-display.c:1008 |
3169 | +msgid "Failed to initialize GDK\n" |
3170 | +msgstr "" |
3171 | |
3172 | -#: ../src/core/util.c:120 |
3173 | -msgid "Mutter was compiled without support for verbose mode\n" |
3174 | -msgstr "جُمِّع مَتَر دون دعم للنمط المطنب\n" |
3175 | +#: src/x11/meta-x11-display.c:1032 |
3176 | +#, c-format |
3177 | +msgid "Failed to open X Window System display “%s”\n" |
3178 | +msgstr "فشل فتح عرض نظام نوافذ إكس ”%s“\n" |
3179 | |
3180 | -#: ../src/wayland/meta-wayland-tablet-pad.c:563 |
3181 | +#: src/x11/meta-x11-display.c:1113 |
3182 | #, c-format |
3183 | -msgid "Mode Switch: Mode %d" |
3184 | -msgstr "" |
3185 | +msgid "Screen %d on display “%s” is invalid\n" |
3186 | +msgstr "الشاشة %d على العرض ”%s“ غير صحيحة\n" |
3187 | |
3188 | -#: ../src/x11/session.c:1815 |
3189 | +#: src/x11/session.c:1821 |
3190 | msgid "" |
3191 | "These windows do not support “save current setup” and will have to be " |
3192 | "restarted manually next time you log in." |
3193 | @@ -198,245 +679,26 @@ msgstr "" |
3194 | "هذه النوافذ لا تدعم ” الضبط الحالي" إعادة تشغيلها يدويا عند الولوج " |
3195 | "المرة القادمة." |
3196 | |
3197 | -#: ../src/x11/window-props.c:559 |
3198 | +#: src/x11/window-props.c:569 |
3199 | #, c-format |
3200 | msgid "%s (on %s)" |
3201 | msgstr "%s (على %s)" |
3202 | |
3203 | -#~ msgid "Navigation" |
3204 | -#~ msgstr "الإبحار" |
3205 | - |
3206 | -#~ msgid "Move window to workspace 1" |
3207 | -#~ msgstr "انقل النافذة إلى مساحة العمل 1" |
3208 | - |
3209 | -#~ msgid "Move window to workspace 2" |
3210 | -#~ msgstr "انقل النافذة إلى مساحة العمل 2" |
3211 | - |
3212 | -#~ msgid "Move window to workspace 3" |
3213 | -#~ msgstr "انقل النافذة إلى مساحة العمل 3" |
3214 | - |
3215 | -#~ msgid "Move window to workspace 4" |
3216 | -#~ msgstr "انقل النافذة إلى مساحة العمل 4" |
3217 | - |
3218 | -#~ msgid "Move window to last workspace" |
3219 | -#~ msgstr "انقل النافذة إلى مساحة العمل الأخيرة" |
3220 | - |
3221 | #~ msgid "Move window one workspace to the left" |
3222 | #~ msgstr "انقل النافذة مساحة عمل واحدة إلى اليسار" |
3223 | |
3224 | #~ msgid "Move window one workspace to the right" |
3225 | #~ msgstr "انقل النافذة مساحة عمل واحدة إلى اليمين" |
3226 | |
3227 | -#~ msgid "Move window one workspace up" |
3228 | -#~ msgstr "انقل النافذة مساحة عمل واحدة إلى الأعلى" |
3229 | - |
3230 | -#~ msgid "Move window one workspace down" |
3231 | -#~ msgstr "انقل النافذة مساحة عمل واحدة إلى الأسفل" |
3232 | - |
3233 | -#~ msgid "Move window one monitor to the left" |
3234 | -#~ msgstr "انقل النافذة شاشة واحدة إلى اليسار" |
3235 | - |
3236 | -#~ msgid "Move window one monitor to the right" |
3237 | -#~ msgstr "انقل النافذة شاشة واحدة إلى اليمين" |
3238 | - |
3239 | -#~ msgid "Move window one monitor up" |
3240 | -#~ msgstr "انقل النافذة شاشة واحدة إلى الأعلى" |
3241 | - |
3242 | -#~ msgid "Move window one monitor down" |
3243 | -#~ msgstr "انقل النافذة شاشة واحدة إلى الأسفل" |
3244 | - |
3245 | -#~ msgid "Switch applications" |
3246 | -#~ msgstr "تنقل بين التطبيقات" |
3247 | - |
3248 | -#~ msgid "Switch to previous application" |
3249 | -#~ msgstr "انتقل إلى التطبيق السابق" |
3250 | - |
3251 | -#~ msgid "Switch windows" |
3252 | -#~ msgstr "تنقل بين النوافذ" |
3253 | - |
3254 | -#~ msgid "Switch to previous window" |
3255 | -#~ msgstr "انتقل إلى النافذة السابقة" |
3256 | - |
3257 | -#~ msgid "Switch windows of an application" |
3258 | -#~ msgstr "تنقل بين نوافذ التطبيق" |
3259 | - |
3260 | -#~ msgid "Switch to previous window of an application" |
3261 | -#~ msgstr "انتقل إلى نافذة التطبيق السابقة" |
3262 | - |
3263 | -#~ msgid "Switch system controls" |
3264 | -#~ msgstr "تنقل بين تحكمات النظام" |
3265 | - |
3266 | -#~ msgid "Switch to previous system control" |
3267 | -#~ msgstr "انتقل إلى تحكم النظام السابق" |
3268 | - |
3269 | -#~ msgid "Switch windows directly" |
3270 | -#~ msgstr "تنقل مباشرة بين النوافذ" |
3271 | - |
3272 | -#~ msgid "Switch directly to previous window" |
3273 | -#~ msgstr "انتقل مباشرة إلى النافذة السابقة" |
3274 | - |
3275 | -#~ msgid "Switch windows of an app directly" |
3276 | -#~ msgstr "تنقل مباشرة بين نوافذ التطبيق" |
3277 | - |
3278 | -#~ msgid "Switch directly to previous window of an app" |
3279 | -#~ msgstr "انتقل مباشرة إلى نافذة التطبيق السابقة" |
3280 | - |
3281 | -#~ msgid "Switch system controls directly" |
3282 | -#~ msgstr "تنقل مباشرة بين تحكمات النظام" |
3283 | - |
3284 | -#~ msgid "Switch directly to previous system control" |
3285 | -#~ msgstr "انتقل مباشرة إلى تحكم النظام السابق" |
3286 | - |
3287 | -#~ msgid "Hide all normal windows" |
3288 | -#~ msgstr "أخفِ كل النوافذ العادية" |
3289 | - |
3290 | -#~ msgid "Switch to workspace 1" |
3291 | -#~ msgstr "انتقل إلى مساحة العمل 1" |
3292 | - |
3293 | -#~ msgid "Switch to workspace 2" |
3294 | -#~ msgstr "انتقل إلى مساحة العمل 2" |
3295 | - |
3296 | -#~ msgid "Switch to workspace 3" |
3297 | -#~ msgstr "انتقل إلى مساحة العمل 3" |
3298 | - |
3299 | -#~ msgid "Switch to workspace 4" |
3300 | -#~ msgstr "انتقل إلى مساحة العمل 4" |
3301 | - |
3302 | -#~ msgid "Switch to last workspace" |
3303 | -#~ msgstr "انتقل إلى مساحة العمل الأخيرة" |
3304 | - |
3305 | #~ msgid "Move to workspace left" |
3306 | #~ msgstr "انقل لمساحة العمل على اليسار" |
3307 | |
3308 | #~ msgid "Move to workspace right" |
3309 | #~ msgstr "انقل لمساحة العمل على اليمين" |
3310 | |
3311 | -#~ msgid "Move to workspace above" |
3312 | -#~ msgstr "انقل لمساحة العمل أعلى" |
3313 | - |
3314 | -#~ msgid "Move to workspace below" |
3315 | -#~ msgstr "انقل لمساحة العمل أسفل" |
3316 | - |
3317 | -#~ msgid "System" |
3318 | -#~ msgstr "النظام" |
3319 | - |
3320 | -#~ msgid "Show the run command prompt" |
3321 | -#~ msgstr "أظهر محث تشغيل أمر" |
3322 | - |
3323 | -#~ msgid "Show the activities overview" |
3324 | -#~ msgstr "أظهر نظرة عامة على الأنشطة" |
3325 | - |
3326 | -#~ msgid "Windows" |
3327 | -#~ msgstr "النوافذ" |
3328 | - |
3329 | -#~ msgid "Activate the window menu" |
3330 | -#~ msgstr "فعّل قائمة النافذة" |
3331 | - |
3332 | -#~ msgid "Toggle fullscreen mode" |
3333 | -#~ msgstr "بدّل نمط ملء الشاشة" |
3334 | - |
3335 | -#~ msgid "Toggle maximization state" |
3336 | -#~ msgstr "بدّل حالة التكبير" |
3337 | - |
3338 | -#~ msgid "Maximize window" |
3339 | -#~ msgstr "كبّر النّافذة" |
3340 | - |
3341 | -#~ msgid "Restore window" |
3342 | -#~ msgstr "استعد النّافذة" |
3343 | - |
3344 | #~ msgid "Toggle shaded state" |
3345 | #~ msgstr "بدّل حالة الإخفاء" |
3346 | |
3347 | -#~ msgid "Close window" |
3348 | -#~ msgstr "أغلق النّافذة" |
3349 | - |
3350 | -#~ msgid "Hide window" |
3351 | -#~ msgstr "أخفِ النّافذة" |
3352 | - |
3353 | -#~ msgid "Move window" |
3354 | -#~ msgstr "انقل النّافذة" |
3355 | - |
3356 | -#~ msgid "Resize window" |
3357 | -#~ msgstr "حجّم النّافذة" |
3358 | - |
3359 | -#~ msgid "Toggle window on all workspaces or one" |
3360 | -#~ msgstr "بدّل حالة ظهور النافذة على جميع مساحات العمل أو واحدة منها" |
3361 | - |
3362 | -#~ msgid "Raise window if covered, otherwise lower it" |
3363 | -#~ msgstr "ارفع النافذة إذا كانت أخرى تغطيها، أو أخفضها في ما عدا ذلك" |
3364 | - |
3365 | -#~ msgid "Raise window above other windows" |
3366 | -#~ msgstr "ارفع النافذة فوق النوافذ الأخرى" |
3367 | - |
3368 | -#~ msgid "Lower window below other windows" |
3369 | -#~ msgstr "اخفض النافذة تحت النوافذ الأخرى" |
3370 | - |
3371 | -#~ msgid "Maximize window vertically" |
3372 | -#~ msgstr "كبّر النافذة رأسيا" |
3373 | - |
3374 | -#~ msgid "Maximize window horizontally" |
3375 | -#~ msgstr "كبّر النافذة أفقيا" |
3376 | - |
3377 | -#~ msgid "View split on left" |
3378 | -#~ msgstr "المنظور مقسوم على اليمين" |
3379 | - |
3380 | -#~ msgid "View split on right" |
3381 | -#~ msgstr "المنظور مقسوم على اليسار" |
3382 | - |
3383 | -#~ msgid "Mutter" |
3384 | -#~ msgstr "مَتَر" |
3385 | - |
3386 | -#~ msgid "Modifier to use for extended window management operations" |
3387 | -#~ msgstr "المغير الذي سيُستعمل لتمديد عمليات إدارة النوافذ " |
3388 | - |
3389 | -#, fuzzy |
3390 | -#~ msgid "Switch to VT 1" |
3391 | -#~ msgstr "انتقل إلى مساحة العمل 1" |
3392 | - |
3393 | -#, fuzzy |
3394 | -#~ msgid "Switch to VT 2" |
3395 | -#~ msgstr "انتقل إلى مساحة العمل 2" |
3396 | - |
3397 | -#, fuzzy |
3398 | -#~ msgid "Switch to VT 3" |
3399 | -#~ msgstr "انتقل إلى مساحة العمل 3" |
3400 | - |
3401 | -#, fuzzy |
3402 | -#~ msgid "Switch to VT 4" |
3403 | -#~ msgstr "انتقل إلى مساحة العمل 4" |
3404 | - |
3405 | -#, fuzzy |
3406 | -#~ msgid "Switch to VT 5" |
3407 | -#~ msgstr "انتقل إلى مساحة العمل 5" |
3408 | - |
3409 | -#, fuzzy |
3410 | -#~ msgid "Switch to VT 6" |
3411 | -#~ msgstr "انتقل إلى مساحة العمل 6" |
3412 | - |
3413 | -#, fuzzy |
3414 | -#~ msgid "Switch to VT 7" |
3415 | -#~ msgstr "انتقل إلى مساحة العمل 7" |
3416 | - |
3417 | -#, fuzzy |
3418 | -#~ msgid "Switch to VT 8" |
3419 | -#~ msgstr "انتقل إلى مساحة العمل 8" |
3420 | - |
3421 | -#, fuzzy |
3422 | -#~ msgid "Switch to VT 9" |
3423 | -#~ msgstr "انتقل إلى مساحة العمل 9" |
3424 | - |
3425 | -#, fuzzy |
3426 | -#~ msgid "Switch to VT 10" |
3427 | -#~ msgstr "انتقل إلى مساحة العمل 10" |
3428 | - |
3429 | -#, fuzzy |
3430 | -#~ msgid "Switch to VT 11" |
3431 | -#~ msgstr "انتقل إلى مساحة العمل 11" |
3432 | - |
3433 | -#, fuzzy |
3434 | -#~ msgid "Switch to VT 12" |
3435 | -#~ msgstr "انتقل إلى مساحة العمل 12" |
3436 | - |
3437 | #~ msgid "Unknown window information request: %d" |
3438 | #~ msgstr "طلب معلومات نافذة مجهول: %d" |
3439 | |
3440 | @@ -1162,9 +1424,6 @@ msgstr "%s (على %s)" |
3441 | #~ msgid "Border" |
3442 | #~ msgstr "حد" |
3443 | |
3444 | -#~ msgid "Attached Modal Dialog" |
3445 | -#~ msgstr "صندوق حوار سائد" |
3446 | - |
3447 | #~ msgid "Button layout test %d" |
3448 | #~ msgstr "تجربة تصميم الأزرار %d" |
3449 | |
3450 | diff --git a/po/es.po b/po/es.po |
3451 | index c5dbad6..39e6635 100644 |
3452 | --- a/po/es.po |
3453 | +++ b/po/es.po |
3454 | @@ -13,7 +13,7 @@ msgid "" |
3455 | msgstr "" |
3456 | "Project-Id-Version: mutter.master\n" |
3457 | "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/mutter/issues\n" |
3458 | -"POT-Creation-Date: 2019-02-20 14:35+0000\n" |
3459 | +"POT-Creation-Date: 2019-03-28 12:21+0000\n" |
3460 | "PO-Revision-Date: 2019-03-01 12:17+0100\n" |
3461 | "Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n" |
3462 | "Language-Team: es <gnome-es-list@gnome.org>\n" |
3463 | @@ -154,7 +154,7 @@ msgstr "Cambiar a la útima área de trabajo" |
3464 | |
3465 | #: data/50-mutter-navigation.xml:123 |
3466 | msgid "Move to workspace above" |
3467 | -msgstr "Mover al área de trabajo de la arriba" |
3468 | +msgstr "Mover al área de trabajo de arriba" |
3469 | |
3470 | #: data/50-mutter-navigation.xml:126 |
3471 | msgid "Move to workspace below" |
3472 | @@ -534,7 +534,7 @@ msgstr "" |
3473 | #. TRANSLATORS: This string refers to a button that switches between |
3474 | #. * different modes. |
3475 | #. |
3476 | -#: src/backends/meta-input-settings.c:2423 |
3477 | +#: src/backends/meta-input-settings.c:2424 |
3478 | #, c-format |
3479 | msgid "Mode Switch (Group %d)" |
3480 | msgstr "Cambiar modo (grupo %d)" |
3481 | @@ -542,34 +542,34 @@ msgstr "Cambiar modo (grupo %d)" |
3482 | #. TRANSLATORS: This string refers to an action, cycles drawing tablets' |
3483 | #. * mapping through the available outputs. |
3484 | #. |
3485 | -#: src/backends/meta-input-settings.c:2446 |
3486 | +#: src/backends/meta-input-settings.c:2447 |
3487 | msgid "Switch monitor" |
3488 | msgstr "Cambiar monitor" |
3489 | |
3490 | -#: src/backends/meta-input-settings.c:2448 |
3491 | +#: src/backends/meta-input-settings.c:2449 |
3492 | msgid "Show on-screen help" |
3493 | msgstr "Mostrar la ayuda en pantalla" |
3494 | |
3495 | -#: src/backends/meta-monitor-manager.c:954 |
3496 | +#: src/backends/meta-monitor-manager.c:955 |
3497 | msgid "Built-in display" |
3498 | msgstr "Pantalla integrada" |
3499 | |
3500 | -#: src/backends/meta-monitor-manager.c:986 |
3501 | +#: src/backends/meta-monitor-manager.c:987 |
3502 | msgid "Unknown" |
3503 | msgstr "Desconocida" |
3504 | |
3505 | -#: src/backends/meta-monitor-manager.c:988 |
3506 | +#: src/backends/meta-monitor-manager.c:989 |
3507 | msgid "Unknown Display" |
3508 | msgstr "Pantalla desconocida" |
3509 | |
3510 | -#: src/backends/meta-monitor-manager.c:996 |
3511 | +#: src/backends/meta-monitor-manager.c:997 |
3512 | #, c-format |
3513 | msgctxt "" |
3514 | "This is a monitor vendor name, followed by a size in inches, like 'Dell 15\"'" |
3515 | msgid "%s %s" |
3516 | msgstr "%s %s" |
3517 | |
3518 | -#: src/backends/meta-monitor-manager.c:1004 |
3519 | +#: src/backends/meta-monitor-manager.c:1005 |
3520 | #, c-format |
3521 | msgctxt "" |
3522 | "This is a monitor vendor name followed by product/model name where size in " |
3523 | @@ -587,7 +587,7 @@ msgstr "" |
3524 | "Ya existe un gestor de composición ejecutándose en la monitor %i, pantalla " |
3525 | "«%s»." |
3526 | |
3527 | -#: src/core/bell.c:252 |
3528 | +#: src/core/bell.c:192 |
3529 | msgid "Bell event" |
3530 | msgstr "Evento de campana" |
3531 | |
3532 | @@ -636,16 +636,16 @@ msgid "Run with X11 backend" |
3533 | msgstr "Ejecutar con «backend» de X11" |
3534 | |
3535 | #. Translators: %s is a window title |
3536 | -#: src/core/meta-close-dialog-default.c:150 |
3537 | +#: src/core/meta-close-dialog-default.c:151 |
3538 | #, c-format |
3539 | msgid "“%s” is not responding." |
3540 | msgstr "«%s» no está respondiendo." |
3541 | |
3542 | -#: src/core/meta-close-dialog-default.c:152 |
3543 | +#: src/core/meta-close-dialog-default.c:153 |
3544 | msgid "Application is not responding." |
3545 | msgstr "La aplicación no está respondiendo." |
3546 | |
3547 | -#: src/core/meta-close-dialog-default.c:157 |
3548 | +#: src/core/meta-close-dialog-default.c:158 |
3549 | msgid "" |
3550 | "You may choose to wait a short while for it to continue or force the " |
3551 | "application to quit entirely." |
3552 | @@ -653,11 +653,11 @@ msgstr "" |
3553 | "Puede elegir esperar un rato para ver si continua o forzar la aplicación " |
3554 | "para cerrarla completamente." |
3555 | |
3556 | -#: src/core/meta-close-dialog-default.c:164 |
3557 | +#: src/core/meta-close-dialog-default.c:165 |
3558 | msgid "_Force Quit" |
3559 | msgstr "_Forzar la salida" |
3560 | |
3561 | -#: src/core/meta-close-dialog-default.c:164 |
3562 | +#: src/core/meta-close-dialog-default.c:165 |
3563 | msgid "_Wait" |
3564 | msgstr "_Esperar" |
3565 | |
3566 | @@ -717,7 +717,7 @@ msgstr "Falló al inicializar GDK\n" |
3567 | msgid "Failed to open X Window System display “%s”\n" |
3568 | msgstr "Ocurrió un error al abrir la pantalla de X Window System «%s»\n" |
3569 | |
3570 | -#: src/x11/meta-x11-display.c:1115 |
3571 | +#: src/x11/meta-x11-display.c:1113 |
3572 | #, c-format |
3573 | msgid "Screen %d on display “%s” is invalid\n" |
3574 | msgstr "La ventana %d en la pantalla «%s» no es válida\n" |
3575 | @@ -730,7 +730,7 @@ msgstr "" |
3576 | "Estas ventanas no soportan «guardar la configuración actual» y tendrán que " |
3577 | "reiniciarse manualmente la próxima vez que inicie una sesión." |
3578 | |
3579 | -#: src/x11/window-props.c:568 |
3580 | +#: src/x11/window-props.c:569 |
3581 | #, c-format |
3582 | msgid "%s (on %s)" |
3583 | msgstr "%s (on %s)" |
3584 | diff --git a/po/hr.po b/po/hr.po |
3585 | index 493ab6e..fba9745 100644 |
3586 | --- a/po/hr.po |
3587 | +++ b/po/hr.po |
3588 | @@ -5,8 +5,8 @@ msgid "" |
3589 | msgstr "" |
3590 | "Project-Id-Version: metacity 0\n" |
3591 | "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/mutter/issues\n" |
3592 | -"POT-Creation-Date: 2018-07-07 09:58+0000\n" |
3593 | -"PO-Revision-Date: 2018-09-02 18:40+0200\n" |
3594 | +"POT-Creation-Date: 2019-02-04 17:52+0000\n" |
3595 | +"PO-Revision-Date: 2019-03-26 12:40+0100\n" |
3596 | "Last-Translator: gogo <trebelnik2@gmail.com>\n" |
3597 | "Language-Team: Croatian <lokalizacija@linux.hr>\n" |
3598 | "Language: hr\n" |
3599 | @@ -16,7 +16,7 @@ msgstr "" |
3600 | "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" |
3601 | "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" |
3602 | "X-Launchpad-Export-Date: 2008-05-28 13:28+0000\n" |
3603 | -"X-Generator: Poedit 2.1.1\n" |
3604 | +"X-Generator: Poedit 2.0.6\n" |
3605 | |
3606 | #: data/50-mutter-navigation.xml:6 |
3607 | msgid "Navigation" |
3608 | @@ -518,7 +518,7 @@ msgstr "" |
3609 | #. TRANSLATORS: This string refers to a button that switches between |
3610 | #. * different modes. |
3611 | #. |
3612 | -#: src/backends/meta-input-settings.c:2325 |
3613 | +#: src/backends/meta-input-settings.c:2423 |
3614 | #, c-format |
3615 | msgid "Mode Switch (Group %d)" |
3616 | msgstr "Način prebacivanja (Grupa %d)" |
3617 | @@ -526,102 +526,109 @@ msgstr "Način prebacivanja (Grupa %d)" |
3618 | #. TRANSLATORS: This string refers to an action, cycles drawing tablets' |
3619 | #. * mapping through the available outputs. |
3620 | #. |
3621 | -#: src/backends/meta-input-settings.c:2348 |
3622 | +#: src/backends/meta-input-settings.c:2446 |
3623 | msgid "Switch monitor" |
3624 | msgstr "Prebaci zaslon" |
3625 | |
3626 | -#: src/backends/meta-input-settings.c:2350 |
3627 | +#: src/backends/meta-input-settings.c:2448 |
3628 | msgid "Show on-screen help" |
3629 | msgstr "Prikaži zaslonsku pomoć" |
3630 | |
3631 | -#: src/backends/meta-monitor-manager.c:907 |
3632 | +#: src/backends/meta-monitor-manager.c:954 |
3633 | msgid "Built-in display" |
3634 | msgstr "Ugrađeni zaslon" |
3635 | |
3636 | -#: src/backends/meta-monitor-manager.c:930 |
3637 | +#: src/backends/meta-monitor-manager.c:986 |
3638 | msgid "Unknown" |
3639 | msgstr "Nepoznat" |
3640 | |
3641 | -#: src/backends/meta-monitor-manager.c:932 |
3642 | +#: src/backends/meta-monitor-manager.c:988 |
3643 | msgid "Unknown Display" |
3644 | msgstr "Nepoznat zaslon" |
3645 | |
3646 | -#. TRANSLATORS: this is a monitor vendor name, followed by a |
3647 | -#. * size in inches, like 'Dell 15"' |
3648 | -#. |
3649 | -#: src/backends/meta-monitor-manager.c:940 |
3650 | +#: src/backends/meta-monitor-manager.c:996 |
3651 | +#, c-format |
3652 | +msgctxt "" |
3653 | +"This is a monitor vendor name, followed by a size in inches, like 'Dell 15\"'" |
3654 | +msgid "%s %s" |
3655 | +msgstr "%s %s" |
3656 | + |
3657 | +#: src/backends/meta-monitor-manager.c:1004 |
3658 | #, c-format |
3659 | +msgctxt "" |
3660 | +"This is a monitor vendor name followed by product/model name where size in " |
3661 | +"inches could not be calculated, e.g. Dell U2414H" |
3662 | msgid "%s %s" |
3663 | msgstr "%s %s" |
3664 | |
3665 | #. This probably means that a non-WM compositor like xcompmgr is running; |
3666 | #. * we have no way to get it to exit |
3667 | -#: src/compositor/compositor.c:481 |
3668 | +#: src/compositor/compositor.c:482 |
3669 | #, c-format |
3670 | msgid "" |
3671 | "Another compositing manager is already running on screen %i on display “%s”." |
3672 | msgstr "" |
3673 | "Drugi upravitelja kompoziranja već je pokrenut na zaslonu %i prikaza \"%s\"." |
3674 | |
3675 | -#: src/core/bell.c:254 |
3676 | +#: src/core/bell.c:252 |
3677 | msgid "Bell event" |
3678 | msgstr "Događaj zvona" |
3679 | |
3680 | -#: src/core/main.c:191 |
3681 | +#: src/core/main.c:185 |
3682 | msgid "Disable connection to session manager" |
3683 | msgstr "Onemogući povezivanje sa upraviteljem sesija" |
3684 | |
3685 | -#: src/core/main.c:197 |
3686 | +#: src/core/main.c:191 |
3687 | msgid "Replace the running window manager" |
3688 | msgstr "Zamijeni pokrenutoga upravitelja porozora" |
3689 | |
3690 | -#: src/core/main.c:203 |
3691 | +#: src/core/main.c:197 |
3692 | msgid "Specify session management ID" |
3693 | msgstr "Odredite ID upravljanja sesijama" |
3694 | |
3695 | -#: src/core/main.c:208 |
3696 | +#: src/core/main.c:202 |
3697 | msgid "X Display to use" |
3698 | msgstr "X Prikaz za korištenje" |
3699 | |
3700 | -#: src/core/main.c:214 |
3701 | +#: src/core/main.c:208 |
3702 | msgid "Initialize session from savefile" |
3703 | msgstr "Pokreni sesiju iz spremljene datoteke" |
3704 | |
3705 | -#: src/core/main.c:220 |
3706 | +#: src/core/main.c:214 |
3707 | msgid "Make X calls synchronous" |
3708 | msgstr "Napravi X pozive usklađenim" |
3709 | |
3710 | -#: src/core/main.c:227 |
3711 | +#: src/core/main.c:221 |
3712 | msgid "Run as a wayland compositor" |
3713 | msgstr "Pokreni wayland kompozitor" |
3714 | |
3715 | -#: src/core/main.c:233 |
3716 | +#: src/core/main.c:227 |
3717 | msgid "Run as a nested compositor" |
3718 | msgstr "Pokreni kao ugrađeni kompozitor" |
3719 | |
3720 | -#: src/core/main.c:239 |
3721 | +#: src/core/main.c:233 |
3722 | msgid "Run wayland compositor without starting Xwayland" |
3723 | msgstr "Pokreni wayland kompozitor bez pokretanja Xwaylanda" |
3724 | |
3725 | -#: src/core/main.c:247 |
3726 | +#: src/core/main.c:241 |
3727 | msgid "Run as a full display server, rather than nested" |
3728 | msgstr "Pokreni kao potpuni poslužitelj zaslona, radije nego ugrađeni" |
3729 | |
3730 | -#: src/core/main.c:253 |
3731 | +#: src/core/main.c:247 |
3732 | msgid "Run with X11 backend" |
3733 | msgstr "Pokreni s X11 pozadinskim programom" |
3734 | |
3735 | #. Translators: %s is a window title |
3736 | -#: src/core/meta-close-dialog-default.c:148 |
3737 | +#: src/core/meta-close-dialog-default.c:150 |
3738 | #, c-format |
3739 | msgid "“%s” is not responding." |
3740 | msgstr "“%s” ne odgovara." |
3741 | |
3742 | -#: src/core/meta-close-dialog-default.c:150 |
3743 | +#: src/core/meta-close-dialog-default.c:152 |
3744 | msgid "Application is not responding." |
3745 | msgstr "Aplikacija ne odgovara." |
3746 | |
3747 | -#: src/core/meta-close-dialog-default.c:155 |
3748 | +#: src/core/meta-close-dialog-default.c:157 |
3749 | msgid "" |
3750 | "You may choose to wait a short while for it to continue or force the " |
3751 | "application to quit entirely." |
3752 | @@ -629,15 +636,15 @@ msgstr "" |
3753 | "Možete pričekati neko vrijeme da aplikacija nastavi s radom ili možete " |
3754 | "prisiliti prekid rada aplikacije." |
3755 | |
3756 | -#: src/core/meta-close-dialog-default.c:162 |
3757 | +#: src/core/meta-close-dialog-default.c:164 |
3758 | msgid "_Force Quit" |
3759 | msgstr "_Prisili izlaženje" |
3760 | |
3761 | -#: src/core/meta-close-dialog-default.c:162 |
3762 | +#: src/core/meta-close-dialog-default.c:164 |
3763 | msgid "_Wait" |
3764 | msgstr "_Čekaj" |
3765 | |
3766 | -#: src/core/mutter.c:39 |
3767 | +#: src/core/mutter.c:38 |
3768 | #, c-format |
3769 | msgid "" |
3770 | "mutter %s\n" |
3771 | @@ -652,20 +659,20 @@ msgstr "" |
3772 | "NE postoji jamstvo; čak i bez podrazumijevanih jamstava UPORABLJIVOSTI ZA " |
3773 | "ODREĐENU SVRHU.\n" |
3774 | |
3775 | -#: src/core/mutter.c:53 |
3776 | +#: src/core/mutter.c:52 |
3777 | msgid "Print version" |
3778 | msgstr "Inačica za ispis" |
3779 | |
3780 | -#: src/core/mutter.c:59 |
3781 | +#: src/core/mutter.c:58 |
3782 | msgid "Mutter plugin to use" |
3783 | msgstr "Mutter priključak koji se koristi" |
3784 | |
3785 | -#: src/core/prefs.c:1915 |
3786 | +#: src/core/prefs.c:1786 |
3787 | #, c-format |
3788 | msgid "Workspace %d" |
3789 | msgstr "Radni prostor %d" |
3790 | |
3791 | -#: src/core/util.c:120 |
3792 | +#: src/core/util.c:121 |
3793 | msgid "Mutter was compiled without support for verbose mode\n" |
3794 | msgstr "Mutter je kompiliran bez podrške za opširan način rada\n" |
3795 | |
3796 | @@ -683,21 +690,21 @@ msgstr "" |
3797 | "Prikaz \"%s\" već ima upravitelja prozora; pokušajte koristiti --replace " |
3798 | "mogućnost za zamjenu trenutnog upravitelja prozora." |
3799 | |
3800 | -#: src/x11/meta-x11-display.c:1010 |
3801 | +#: src/x11/meta-x11-display.c:1008 |
3802 | msgid "Failed to initialize GDK\n" |
3803 | msgstr "Neuspjelo GDK pokretanje\n" |
3804 | |
3805 | -#: src/x11/meta-x11-display.c:1034 |
3806 | +#: src/x11/meta-x11-display.c:1032 |
3807 | #, c-format |
3808 | msgid "Failed to open X Window System display “%s”\n" |
3809 | msgstr "Neuspjelo otvaranje sustava prikaza X prozora \"%s\"\n" |
3810 | |
3811 | -#: src/x11/meta-x11-display.c:1117 |
3812 | +#: src/x11/meta-x11-display.c:1115 |
3813 | #, c-format |
3814 | msgid "Screen %d on display “%s” is invalid\n" |
3815 | msgstr "Zaslon %d na prikazu '%s' je neispravan\n" |
3816 | |
3817 | -#: src/x11/session.c:1819 |
3818 | +#: src/x11/session.c:1821 |
3819 | msgid "" |
3820 | "These windows do not support “save current setup” and will have to be " |
3821 | "restarted manually next time you log in." |
3822 | @@ -705,7 +712,7 @@ msgstr "" |
3823 | "Ovi prozori ne podržavaju mogućnost \"spremi trenutne postavke\" i moraju se " |
3824 | "ručno ponovno pokrenuti sljedeći puta kada se prijavite." |
3825 | |
3826 | -#: src/x11/window-props.c:565 |
3827 | +#: src/x11/window-props.c:568 |
3828 | #, c-format |
3829 | msgid "%s (on %s)" |
3830 | msgstr "%s (na %s)" |
3831 | diff --git a/src/backends/meta-backend-private.h b/src/backends/meta-backend-private.h |
3832 | index 510e6aa..7eba180 100644 |
3833 | --- a/src/backends/meta-backend-private.h |
3834 | +++ b/src/backends/meta-backend-private.h |
3835 | @@ -147,6 +147,10 @@ xkb_layout_index_t meta_backend_get_keymap_layout_group (MetaBackend *backend); |
3836 | |
3837 | gboolean meta_backend_is_lid_closed (MetaBackend *backend); |
3838 | |
3839 | +void meta_backend_freeze_updates (MetaBackend *backend); |
3840 | + |
3841 | +void meta_backend_thaw_updates (MetaBackend *backend); |
3842 | + |
3843 | void meta_backend_update_last_device (MetaBackend *backend, |
3844 | int device_id); |
3845 | |
3846 | diff --git a/src/backends/meta-backend.c b/src/backends/meta-backend.c |
3847 | index c527114..23ab2fa 100644 |
3848 | --- a/src/backends/meta-backend.c |
3849 | +++ b/src/backends/meta-backend.c |
3850 | @@ -475,7 +475,7 @@ meta_backend_real_post_init (MetaBackend *backend) |
3851 | MetaBackendPrivate *priv = meta_backend_get_instance_private (backend); |
3852 | ClutterDeviceManager *device_manager = clutter_device_manager_get_default (); |
3853 | |
3854 | - priv->stage = meta_stage_new (); |
3855 | + priv->stage = meta_stage_new (backend); |
3856 | clutter_actor_realize (priv->stage); |
3857 | META_BACKEND_GET_CLASS (backend)->select_stage_events (backend); |
3858 | |
3859 | @@ -1079,6 +1079,24 @@ meta_backend_get_stage (MetaBackend *backend) |
3860 | return priv->stage; |
3861 | } |
3862 | |
3863 | +void |
3864 | +meta_backend_freeze_updates (MetaBackend *backend) |
3865 | +{ |
3866 | + ClutterStage *stage; |
3867 | + |
3868 | + stage = CLUTTER_STAGE (meta_backend_get_stage (backend)); |
3869 | + clutter_stage_freeze_updates (stage); |
3870 | +} |
3871 | + |
3872 | +void |
3873 | +meta_backend_thaw_updates (MetaBackend *backend) |
3874 | +{ |
3875 | + ClutterStage *stage; |
3876 | + |
3877 | + stage = CLUTTER_STAGE (meta_backend_get_stage (backend)); |
3878 | + clutter_stage_thaw_updates (stage); |
3879 | +} |
3880 | + |
3881 | static gboolean |
3882 | update_last_device (MetaBackend *backend) |
3883 | { |
3884 | diff --git a/src/backends/meta-input-mapper.c b/src/backends/meta-input-mapper.c |
3885 | index 1a3cb2c..5227292 100644 |
3886 | --- a/src/backends/meta-input-mapper.c |
3887 | +++ b/src/backends/meta-input-mapper.c |
3888 | @@ -20,6 +20,10 @@ |
3889 | |
3890 | #include "config.h" |
3891 | |
3892 | +#ifdef HAVE_LIBGUDEV |
3893 | +#include <gudev/gudev.h> |
3894 | +#endif |
3895 | + |
3896 | #include "meta-input-mapper-private.h" |
3897 | #include "meta-monitor-manager-private.h" |
3898 | #include "meta-logical-monitor.h" |
3899 | @@ -39,6 +43,9 @@ struct _MetaInputMapper |
3900 | ClutterDeviceManager *input_device_manager; |
3901 | GHashTable *input_devices; /* ClutterInputDevice -> MetaMapperInputInfo */ |
3902 | GHashTable *output_devices; /* MetaLogicalMonitor -> MetaMapperOutputInfo */ |
3903 | +#ifdef HAVE_LIBGUDEV |
3904 | + GUdevClient *udev_client; |
3905 | +#endif |
3906 | }; |
3907 | |
3908 | typedef enum |
3909 | @@ -271,6 +278,33 @@ match_edid (MetaMapperInputInfo *input, |
3910 | } |
3911 | |
3912 | static gboolean |
3913 | +input_device_get_physical_size (MetaInputMapper *mapper, |
3914 | + ClutterInputDevice *device, |
3915 | + double *width, |
3916 | + double *height) |
3917 | +{ |
3918 | +#ifdef HAVE_LIBGUDEV |
3919 | + g_autoptr (GUdevDevice) udev_device = NULL; |
3920 | + const char *node; |
3921 | + |
3922 | + node = clutter_input_device_get_device_node (device); |
3923 | + udev_device = g_udev_client_query_by_device_file (mapper->udev_client, node); |
3924 | + |
3925 | + if (udev_device && |
3926 | + g_udev_device_has_property (udev_device, "ID_INPUT_WIDTH_MM")) |
3927 | + { |
3928 | + *width = g_udev_device_get_property_as_double (udev_device, |
3929 | + "ID_INPUT_WIDTH_MM"); |
3930 | + *height = g_udev_device_get_property_as_double (udev_device, |
3931 | + "ID_INPUT_HEIGHT_MM"); |
3932 | + return TRUE; |
3933 | + } |
3934 | +#endif |
3935 | + |
3936 | + return FALSE; |
3937 | +} |
3938 | + |
3939 | +static gboolean |
3940 | find_size_match (MetaMapperInputInfo *input, |
3941 | GList *monitors, |
3942 | MetaMonitor **matched_monitor) |
3943 | @@ -282,7 +316,8 @@ find_size_match (MetaMapperInputInfo *input, |
3944 | |
3945 | min_w_diff = min_h_diff = MAX_SIZE_MATCH_DIFF; |
3946 | |
3947 | - if (!clutter_input_device_get_physical_size (input->device, &i_width, &i_height)) |
3948 | + if (!input_device_get_physical_size (input->mapper, input->device, |
3949 | + &i_width, &i_height)) |
3950 | return FALSE; |
3951 | |
3952 | for (l = monitors; l; l = l->next) |
3953 | @@ -520,6 +555,9 @@ meta_input_mapper_finalize (GObject *object) |
3954 | |
3955 | g_hash_table_unref (mapper->input_devices); |
3956 | g_hash_table_unref (mapper->output_devices); |
3957 | +#ifdef HAVE_LIBGUDEV |
3958 | + g_clear_object (&mapper->udev_client); |
3959 | +#endif |
3960 | |
3961 | G_OBJECT_CLASS (meta_input_mapper_parent_class)->finalize (object); |
3962 | } |
3963 | @@ -527,11 +565,18 @@ meta_input_mapper_finalize (GObject *object) |
3964 | static void |
3965 | meta_input_mapper_constructed (GObject *object) |
3966 | { |
3967 | +#ifdef HAVE_LIBGUDEV |
3968 | + const char *udev_subsystems[] = { "input", NULL }; |
3969 | +#endif |
3970 | MetaInputMapper *mapper = META_INPUT_MAPPER (object); |
3971 | MetaBackend *backend; |
3972 | |
3973 | G_OBJECT_CLASS (meta_input_mapper_parent_class)->constructed (object); |
3974 | |
3975 | +#ifdef HAVE_LIBGUDEV |
3976 | + mapper->udev_client = g_udev_client_new (udev_subsystems); |
3977 | +#endif |
3978 | + |
3979 | mapper->input_device_manager = clutter_device_manager_get_default (); |
3980 | g_signal_connect (mapper->input_device_manager, "device-removed", |
3981 | G_CALLBACK (input_mapper_device_removed_cb), mapper); |
3982 | diff --git a/src/backends/meta-input-settings.c b/src/backends/meta-input-settings.c |
3983 | index 27e99b5..7b8df56 100644 |
3984 | --- a/src/backends/meta-input-settings.c |
3985 | +++ b/src/backends/meta-input-settings.c |
3986 | @@ -1766,9 +1766,11 @@ power_save_mode_changed_cb (MetaMonitorManager *manager, |
3987 | ClutterInputDevice *device; |
3988 | MetaLogicalMonitor *logical_monitor; |
3989 | MetaMonitor *builtin; |
3990 | + MetaPowerSave power_save_mode; |
3991 | gboolean on; |
3992 | |
3993 | - on = (manager->power_save_mode == META_POWER_SAVE_ON); |
3994 | + power_save_mode = meta_monitor_manager_get_power_save_mode (manager); |
3995 | + on = power_save_mode == META_POWER_SAVE_ON; |
3996 | priv = meta_input_settings_get_instance_private (user_data); |
3997 | |
3998 | builtin = meta_monitor_manager_get_laptop_panel (manager); |
3999 | diff --git a/src/backends/meta-monitor-config-manager.c b/src/backends/meta-monitor-config-manager.c |
4000 | index 771c57f..9a54ce5 100644 |
4001 | --- a/src/backends/meta-monitor-config-manager.c |
4002 | +++ b/src/backends/meta-monitor-config-manager.c |
4003 | @@ -1540,7 +1540,7 @@ meta_verify_logical_monitor_config (MetaLogicalMonitorConfig *logical_monitor |
4004 | } |
4005 | |
4006 | static gboolean |
4007 | -has_adjecent_neighbour (MetaMonitorsConfig *config, |
4008 | +has_adjacent_neighbour (MetaMonitorsConfig *config, |
4009 | MetaLogicalMonitorConfig *logical_monitor_config) |
4010 | { |
4011 | GList *l; |
4012 | @@ -1559,7 +1559,7 @@ has_adjecent_neighbour (MetaMonitorsConfig *config, |
4013 | if (logical_monitor_config == other_logical_monitor_config) |
4014 | continue; |
4015 | |
4016 | - if (meta_rectangle_is_adjecent_to (&logical_monitor_config->layout, |
4017 | + if (meta_rectangle_is_adjacent_to (&logical_monitor_config->layout, |
4018 | &other_logical_monitor_config->layout)) |
4019 | return TRUE; |
4020 | } |
4021 | @@ -1665,10 +1665,10 @@ meta_verify_monitors_config (MetaMonitorsConfig *config, |
4022 | has_primary = TRUE; |
4023 | } |
4024 | |
4025 | - if (!has_adjecent_neighbour (config, logical_monitor_config)) |
4026 | + if (!has_adjacent_neighbour (config, logical_monitor_config)) |
4027 | { |
4028 | g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, |
4029 | - "Logical monitors not adjecent"); |
4030 | + "Logical monitors not adjacent"); |
4031 | return FALSE; |
4032 | } |
4033 | |
4034 | diff --git a/src/backends/meta-monitor-manager-dummy.c b/src/backends/meta-monitor-manager-dummy.c |
4035 | index 06e8837..46c3b8c 100644 |
4036 | --- a/src/backends/meta-monitor-manager-dummy.c |
4037 | +++ b/src/backends/meta-monitor-manager-dummy.c |
4038 | @@ -694,11 +694,11 @@ meta_monitor_manager_dummy_calculate_monitor_mode_scale (MetaMonitorManager *man |
4039 | } |
4040 | |
4041 | static float * |
4042 | -meta_monitor_manager_dummy_calculate_supported_scales (MetaMonitorManager *manager, |
4043 | - MetaLogicalMonitorLayoutMode layout_mode, |
4044 | - MetaMonitor *monitor, |
4045 | - MetaMonitorMode *monitor_mode, |
4046 | - int *n_supported_scales) |
4047 | +meta_monitor_manager_dummy_calculate_supported_scales (MetaMonitorManager *manager, |
4048 | + MetaLogicalMonitorLayoutMode layout_mode, |
4049 | + MetaMonitor *monitor, |
4050 | + MetaMonitorMode *monitor_mode, |
4051 | + int *n_supported_scales) |
4052 | { |
4053 | MetaMonitorScalesConstraint constraints = |
4054 | META_MONITOR_SCALES_CONSTRAINT_NONE; |
4055 | diff --git a/src/backends/meta-monitor-manager-private.h b/src/backends/meta-monitor-manager-private.h |
4056 | index 3b951c6..cdb8f42 100644 |
4057 | --- a/src/backends/meta-monitor-manager-private.h |
4058 | +++ b/src/backends/meta-monitor-manager-private.h |
4059 | @@ -116,8 +116,6 @@ struct _MetaMonitorManager |
4060 | gboolean in_init; |
4061 | unsigned int serial; |
4062 | |
4063 | - MetaPowerSave power_save_mode; |
4064 | - |
4065 | MetaLogicalMonitorLayoutMode layout_mode; |
4066 | |
4067 | int screen_width; |
4068 | @@ -192,6 +190,8 @@ struct _MetaMonitorManagerClass |
4069 | GBytes* (*read_edid) (MetaMonitorManager *, |
4070 | MetaOutput *); |
4071 | |
4072 | + void (*read_current_state) (MetaMonitorManager *); |
4073 | + |
4074 | void (*ensure_initial_config) (MetaMonitorManager *); |
4075 | |
4076 | gboolean (*apply_monitors_config) (MetaMonitorManager *, |
4077 | @@ -305,6 +305,11 @@ void meta_monitor_manager_get_screen_size (MetaMonitorManager * |
4078 | int *width, |
4079 | int *height); |
4080 | |
4081 | +MetaPowerSave meta_monitor_manager_get_power_save_mode (MetaMonitorManager *manager); |
4082 | + |
4083 | +void meta_monitor_manager_power_save_mode_changed (MetaMonitorManager *manager, |
4084 | + MetaPowerSave mode); |
4085 | + |
4086 | void meta_monitor_manager_confirm_configuration (MetaMonitorManager *manager, |
4087 | gboolean ok); |
4088 | |
4089 | diff --git a/src/backends/meta-monitor-manager.c b/src/backends/meta-monitor-manager.c |
4090 | index 9420265..2d898c7 100644 |
4091 | --- a/src/backends/meta-monitor-manager.c |
4092 | +++ b/src/backends/meta-monitor-manager.c |
4093 | @@ -95,7 +95,13 @@ static gfloat transform_matrices[][6] = { |
4094 | |
4095 | static int signals[SIGNALS_LAST]; |
4096 | |
4097 | -G_DEFINE_TYPE (MetaMonitorManager, meta_monitor_manager, G_TYPE_OBJECT) |
4098 | +typedef struct _MetaMonitorManagerPrivate |
4099 | +{ |
4100 | + MetaPowerSave power_save_mode; |
4101 | +} MetaMonitorManagerPrivate; |
4102 | + |
4103 | +G_DEFINE_TYPE_WITH_PRIVATE (MetaMonitorManager, meta_monitor_manager, |
4104 | + G_TYPE_OBJECT) |
4105 | |
4106 | static void initialize_dbus_interface (MetaMonitorManager *manager); |
4107 | static void monitor_manager_setup_dbus_config_handlers (MetaMonitorManager *manager); |
4108 | @@ -107,6 +113,9 @@ meta_monitor_manager_is_config_complete (MetaMonitorManager *manager, |
4109 | static MetaMonitor * |
4110 | meta_monitor_manager_get_active_monitor (MetaMonitorManager *manager); |
4111 | |
4112 | +static void |
4113 | +meta_monitor_manager_real_read_current_state (MetaMonitorManager *manager); |
4114 | + |
4115 | MetaBackend * |
4116 | meta_monitor_manager_get_backend (MetaMonitorManager *manager) |
4117 | { |
4118 | @@ -329,11 +338,24 @@ meta_monitor_manager_rebuild_logical_monitors_derived (MetaMonitorManager *manag |
4119 | primary_logical_monitor); |
4120 | } |
4121 | |
4122 | +void |
4123 | +meta_monitor_manager_power_save_mode_changed (MetaMonitorManager *manager, |
4124 | + MetaPowerSave mode) |
4125 | +{ |
4126 | + MetaMonitorManagerPrivate *priv = |
4127 | + meta_monitor_manager_get_instance_private (manager); |
4128 | + |
4129 | + priv->power_save_mode = mode; |
4130 | + g_signal_emit (manager, signals[POWER_SAVE_MODE_CHANGED], 0); |
4131 | +} |
4132 | + |
4133 | static void |
4134 | power_save_mode_changed (MetaMonitorManager *manager, |
4135 | GParamSpec *pspec, |
4136 | gpointer user_data) |
4137 | { |
4138 | + MetaMonitorManagerPrivate *priv = |
4139 | + meta_monitor_manager_get_instance_private (manager); |
4140 | MetaMonitorManagerClass *klass; |
4141 | int mode = meta_dbus_display_config_get_power_save_mode (manager->display_config); |
4142 | |
4143 | @@ -341,7 +363,7 @@ power_save_mode_changed (MetaMonitorManager *manager, |
4144 | return; |
4145 | |
4146 | /* If DPMS is unsupported, force the property back. */ |
4147 | - if (manager->power_save_mode == META_POWER_SAVE_UNSUPPORTED) |
4148 | + if (priv->power_save_mode == META_POWER_SAVE_UNSUPPORTED) |
4149 | { |
4150 | meta_dbus_display_config_set_power_save_mode (manager->display_config, META_POWER_SAVE_UNSUPPORTED); |
4151 | return; |
4152 | @@ -351,9 +373,7 @@ power_save_mode_changed (MetaMonitorManager *manager, |
4153 | if (klass->set_power_save_mode) |
4154 | klass->set_power_save_mode (manager, mode); |
4155 | |
4156 | - manager->power_save_mode = mode; |
4157 | - |
4158 | - g_signal_emit (manager, signals[POWER_SAVE_MODE_CHANGED], 0); |
4159 | + meta_monitor_manager_power_save_mode_changed (manager, mode); |
4160 | } |
4161 | |
4162 | void |
4163 | @@ -400,11 +420,11 @@ meta_monitor_manager_calculate_monitor_mode_scale (MetaMonitorManager *manager, |
4164 | } |
4165 | |
4166 | float * |
4167 | -meta_monitor_manager_calculate_supported_scales (MetaMonitorManager *manager, |
4168 | - MetaLogicalMonitorLayoutMode layout_mode, |
4169 | - MetaMonitor *monitor, |
4170 | - MetaMonitorMode *monitor_mode, |
4171 | - int *n_supported_scales) |
4172 | +meta_monitor_manager_calculate_supported_scales (MetaMonitorManager *manager, |
4173 | + MetaLogicalMonitorLayoutMode layout_mode, |
4174 | + MetaMonitor *monitor, |
4175 | + MetaMonitorMode *monitor_mode, |
4176 | + int *n_supported_scales) |
4177 | { |
4178 | MetaMonitorManagerClass *manager_class = |
4179 | META_MONITOR_MANAGER_GET_CLASS (manager); |
4180 | @@ -855,6 +875,7 @@ meta_monitor_manager_class_init (MetaMonitorManagerClass *klass) |
4181 | object_class->set_property = meta_monitor_manager_set_property; |
4182 | |
4183 | klass->read_edid = meta_monitor_manager_real_read_edid; |
4184 | + klass->read_current_state = meta_monitor_manager_real_read_current_state; |
4185 | |
4186 | signals[MONITORS_CHANGED] = |
4187 | g_signal_new ("monitors-changed", |
4188 | @@ -2684,6 +2705,15 @@ meta_monitor_manager_get_screen_size (MetaMonitorManager *manager, |
4189 | *height = manager->screen_height; |
4190 | } |
4191 | |
4192 | +MetaPowerSave |
4193 | +meta_monitor_manager_get_power_save_mode (MetaMonitorManager *manager) |
4194 | +{ |
4195 | + MetaMonitorManagerPrivate *priv = |
4196 | + meta_monitor_manager_get_instance_private (manager); |
4197 | + |
4198 | + return priv->power_save_mode; |
4199 | +} |
4200 | + |
4201 | static void |
4202 | rebuild_monitors (MetaMonitorManager *manager) |
4203 | { |
4204 | @@ -2760,8 +2790,8 @@ meta_monitor_manager_is_transform_handled (MetaMonitorManager *manager, |
4205 | return manager_class->is_transform_handled (manager, crtc, transform); |
4206 | } |
4207 | |
4208 | -void |
4209 | -meta_monitor_manager_read_current_state (MetaMonitorManager *manager) |
4210 | +static void |
4211 | +meta_monitor_manager_real_read_current_state (MetaMonitorManager *manager) |
4212 | { |
4213 | GList *l; |
4214 | |
4215 | @@ -2782,6 +2812,15 @@ meta_monitor_manager_read_current_state (MetaMonitorManager *manager) |
4216 | rebuild_monitors (manager); |
4217 | } |
4218 | |
4219 | +void |
4220 | +meta_monitor_manager_read_current_state (MetaMonitorManager *manager) |
4221 | +{ |
4222 | + MetaMonitorManagerClass *manager_class = |
4223 | + META_MONITOR_MANAGER_GET_CLASS (manager); |
4224 | + |
4225 | + manager_class->read_current_state (manager); |
4226 | +} |
4227 | + |
4228 | static void |
4229 | meta_monitor_manager_notify_monitors_changed (MetaMonitorManager *manager) |
4230 | { |
4231 | diff --git a/src/backends/meta-monitor.c b/src/backends/meta-monitor.c |
4232 | index 3ff18a5..22a3e45 100644 |
4233 | --- a/src/backends/meta-monitor.c |
4234 | +++ b/src/backends/meta-monitor.c |
4235 | @@ -615,12 +615,12 @@ meta_monitor_normal_get_suggested_position (MetaMonitor *monitor, |
4236 | } |
4237 | |
4238 | static void |
4239 | -meta_monitor_normal_calculate_crtc_pos (MetaMonitor *monitor, |
4240 | - MetaMonitorMode *monitor_mode, |
4241 | - MetaOutput *output, |
4242 | - MetaMonitorTransform crtc_transform, |
4243 | - int *out_x, |
4244 | - int *out_y) |
4245 | +meta_monitor_normal_calculate_crtc_pos (MetaMonitor *monitor, |
4246 | + MetaMonitorMode *monitor_mode, |
4247 | + MetaOutput *output, |
4248 | + MetaMonitorTransform crtc_transform, |
4249 | + int *out_x, |
4250 | + int *out_y) |
4251 | { |
4252 | *out_x = 0; |
4253 | *out_y = 0; |
4254 | @@ -1267,12 +1267,12 @@ meta_monitor_tiled_get_suggested_position (MetaMonitor *monitor, |
4255 | } |
4256 | |
4257 | static void |
4258 | -meta_monitor_tiled_calculate_crtc_pos (MetaMonitor *monitor, |
4259 | - MetaMonitorMode *monitor_mode, |
4260 | - MetaOutput *output, |
4261 | - MetaMonitorTransform crtc_transform, |
4262 | - int *out_x, |
4263 | - int *out_y) |
4264 | +meta_monitor_tiled_calculate_crtc_pos (MetaMonitor *monitor, |
4265 | + MetaMonitorMode *monitor_mode, |
4266 | + MetaOutput *output, |
4267 | + MetaMonitorTransform crtc_transform, |
4268 | + int *out_x, |
4269 | + int *out_y) |
4270 | { |
4271 | MetaMonitorModeTiled *mode_tiled = (MetaMonitorModeTiled *) monitor_mode; |
4272 | |
4273 | @@ -1461,12 +1461,12 @@ meta_monitor_get_modes (MetaMonitor *monitor) |
4274 | } |
4275 | |
4276 | void |
4277 | -meta_monitor_calculate_crtc_pos (MetaMonitor *monitor, |
4278 | - MetaMonitorMode *monitor_mode, |
4279 | - MetaOutput *output, |
4280 | - MetaMonitorTransform crtc_transform, |
4281 | - int *out_x, |
4282 | - int *out_y) |
4283 | +meta_monitor_calculate_crtc_pos (MetaMonitor *monitor, |
4284 | + MetaMonitorMode *monitor_mode, |
4285 | + MetaOutput *output, |
4286 | + MetaMonitorTransform crtc_transform, |
4287 | + int *out_x, |
4288 | + int *out_y) |
4289 | { |
4290 | META_MONITOR_GET_CLASS (monitor)->calculate_crtc_pos (monitor, |
4291 | monitor_mode, |
4292 | @@ -1587,7 +1587,6 @@ get_closest_scale_factor_for_resolution (float width, |
4293 | float scaled_w; |
4294 | float best_scale; |
4295 | int base_scaled_w; |
4296 | - gboolean limit_exceeded; |
4297 | gboolean found_one; |
4298 | |
4299 | best_scale = 0; |
4300 | @@ -1604,7 +1603,6 @@ get_closest_scale_factor_for_resolution (float width, |
4301 | |
4302 | i = 0; |
4303 | found_one = FALSE; |
4304 | - limit_exceeded = FALSE; |
4305 | base_scaled_w = floorf (scaled_w); |
4306 | |
4307 | do |
4308 | @@ -1637,17 +1635,17 @@ get_closest_scale_factor_for_resolution (float width, |
4309 | |
4310 | i++; |
4311 | } |
4312 | - while (!found_one && !limit_exceeded); |
4313 | + while (!found_one); |
4314 | |
4315 | out: |
4316 | return best_scale; |
4317 | } |
4318 | |
4319 | float * |
4320 | -meta_monitor_calculate_supported_scales (MetaMonitor *monitor, |
4321 | - MetaMonitorMode *monitor_mode, |
4322 | - MetaMonitorScalesConstraint constraints, |
4323 | - int *n_supported_scales) |
4324 | +meta_monitor_calculate_supported_scales (MetaMonitor *monitor, |
4325 | + MetaMonitorMode *monitor_mode, |
4326 | + MetaMonitorScalesConstraint constraints, |
4327 | + int *n_supported_scales) |
4328 | { |
4329 | unsigned int i, j; |
4330 | int width, height; |
4331 | @@ -1727,11 +1725,11 @@ meta_monitor_mode_get_flags (MetaMonitorMode *monitor_mode) |
4332 | } |
4333 | |
4334 | gboolean |
4335 | -meta_monitor_mode_foreach_crtc (MetaMonitor *monitor, |
4336 | - MetaMonitorMode *mode, |
4337 | - MetaMonitorModeFunc func, |
4338 | - gpointer user_data, |
4339 | - GError **error) |
4340 | +meta_monitor_mode_foreach_crtc (MetaMonitor *monitor, |
4341 | + MetaMonitorMode *mode, |
4342 | + MetaMonitorModeFunc func, |
4343 | + gpointer user_data, |
4344 | + GError **error) |
4345 | { |
4346 | MetaMonitorPrivate *monitor_priv = |
4347 | meta_monitor_get_instance_private (monitor); |
4348 | @@ -1753,11 +1751,11 @@ meta_monitor_mode_foreach_crtc (MetaMonitor *monitor, |
4349 | } |
4350 | |
4351 | gboolean |
4352 | -meta_monitor_mode_foreach_output (MetaMonitor *monitor, |
4353 | - MetaMonitorMode *mode, |
4354 | - MetaMonitorModeFunc func, |
4355 | - gpointer user_data, |
4356 | - GError **error) |
4357 | +meta_monitor_mode_foreach_output (MetaMonitor *monitor, |
4358 | + MetaMonitorMode *mode, |
4359 | + MetaMonitorModeFunc func, |
4360 | + gpointer user_data, |
4361 | + GError **error) |
4362 | { |
4363 | MetaMonitorPrivate *monitor_priv = |
4364 | meta_monitor_get_instance_private (monitor); |
4365 | diff --git a/src/backends/meta-monitor.h b/src/backends/meta-monitor.h |
4366 | index 41f2c0f..413a4e2 100644 |
4367 | --- a/src/backends/meta-monitor.h |
4368 | +++ b/src/backends/meta-monitor.h |
4369 | @@ -74,12 +74,12 @@ struct _MetaMonitorClass |
4370 | MetaOutput * (* get_main_output) (MetaMonitor *monitor); |
4371 | void (* derive_layout) (MetaMonitor *monitor, |
4372 | MetaRectangle *layout); |
4373 | - void (* calculate_crtc_pos) (MetaMonitor *monitor, |
4374 | - MetaMonitorMode *monitor_mode, |
4375 | - MetaOutput *output, |
4376 | - MetaMonitorTransform crtc_transform, |
4377 | - int *out_x, |
4378 | - int *out_y); |
4379 | + void (* calculate_crtc_pos) (MetaMonitor *monitor, |
4380 | + MetaMonitorMode *monitor_mode, |
4381 | + MetaOutput *output, |
4382 | + MetaMonitorTransform crtc_transform, |
4383 | + int *out_x, |
4384 | + int *out_y); |
4385 | gboolean (* get_suggested_position) (MetaMonitor *monitor, |
4386 | int *width, |
4387 | int *height); |
4388 | @@ -214,22 +214,22 @@ META_EXPORT_TEST |
4389 | GList * meta_monitor_get_modes (MetaMonitor *monitor); |
4390 | |
4391 | META_EXPORT_TEST |
4392 | -void meta_monitor_calculate_crtc_pos (MetaMonitor *monitor, |
4393 | - MetaMonitorMode *monitor_mode, |
4394 | - MetaOutput *output, |
4395 | - MetaMonitorTransform crtc_transform, |
4396 | - int *out_x, |
4397 | - int *out_y); |
4398 | +void meta_monitor_calculate_crtc_pos (MetaMonitor *monitor, |
4399 | + MetaMonitorMode *monitor_mode, |
4400 | + MetaOutput *output, |
4401 | + MetaMonitorTransform crtc_transform, |
4402 | + int *out_x, |
4403 | + int *out_y); |
4404 | |
4405 | META_EXPORT_TEST |
4406 | float meta_monitor_calculate_mode_scale (MetaMonitor *monitor, |
4407 | MetaMonitorMode *monitor_mode); |
4408 | |
4409 | META_EXPORT_TEST |
4410 | -float * meta_monitor_calculate_supported_scales (MetaMonitor *monitor, |
4411 | - MetaMonitorMode *monitor_mode, |
4412 | - MetaMonitorScalesConstraint constraints, |
4413 | - int *n_supported_scales); |
4414 | +float * meta_monitor_calculate_supported_scales (MetaMonitor *monitor, |
4415 | + MetaMonitorMode *monitor_mode, |
4416 | + MetaMonitorScalesConstraint constraints, |
4417 | + int *n_supported_scales); |
4418 | |
4419 | META_EXPORT_TEST |
4420 | const char * meta_monitor_mode_get_id (MetaMonitorMode *monitor_mode); |
4421 | @@ -249,18 +249,18 @@ META_EXPORT_TEST |
4422 | MetaCrtcModeFlag meta_monitor_mode_get_flags (MetaMonitorMode *monitor_mode); |
4423 | |
4424 | META_EXPORT_TEST |
4425 | -gboolean meta_monitor_mode_foreach_crtc (MetaMonitor *monitor, |
4426 | - MetaMonitorMode *mode, |
4427 | - MetaMonitorModeFunc func, |
4428 | - gpointer user_data, |
4429 | - GError **error); |
4430 | +gboolean meta_monitor_mode_foreach_crtc (MetaMonitor *monitor, |
4431 | + MetaMonitorMode *mode, |
4432 | + MetaMonitorModeFunc func, |
4433 | + gpointer user_data, |
4434 | + GError **error); |
4435 | |
4436 | META_EXPORT_TEST |
4437 | -gboolean meta_monitor_mode_foreach_output (MetaMonitor *monitor, |
4438 | - MetaMonitorMode *mode, |
4439 | - MetaMonitorModeFunc func, |
4440 | - gpointer user_data, |
4441 | - GError **error); |
4442 | +gboolean meta_monitor_mode_foreach_output (MetaMonitor *monitor, |
4443 | + MetaMonitorMode *mode, |
4444 | + MetaMonitorModeFunc func, |
4445 | + gpointer user_data, |
4446 | + GError **error); |
4447 | |
4448 | META_EXPORT_TEST |
4449 | gboolean meta_monitor_mode_should_be_advertised (MetaMonitorMode *monitor_mode); |
4450 | diff --git a/src/backends/meta-stage-private.h b/src/backends/meta-stage-private.h |
4451 | index 21feab3..639d237 100644 |
4452 | --- a/src/backends/meta-stage-private.h |
4453 | +++ b/src/backends/meta-stage-private.h |
4454 | @@ -23,12 +23,13 @@ |
4455 | #include "backends/meta-cursor.h" |
4456 | #include "meta/boxes.h" |
4457 | #include "meta/meta-stage.h" |
4458 | +#include "meta/types.h" |
4459 | |
4460 | G_BEGIN_DECLS |
4461 | |
4462 | typedef struct _MetaOverlay MetaOverlay; |
4463 | |
4464 | -ClutterActor *meta_stage_new (void); |
4465 | +ClutterActor *meta_stage_new (MetaBackend *backend); |
4466 | |
4467 | MetaOverlay *meta_stage_create_cursor_overlay (MetaStage *stage); |
4468 | void meta_stage_remove_cursor_overlay (MetaStage *stage, |
4469 | diff --git a/src/backends/meta-stage.c b/src/backends/meta-stage.c |
4470 | index 1f0d9c0..47a00e5 100644 |
4471 | --- a/src/backends/meta-stage.c |
4472 | +++ b/src/backends/meta-stage.c |
4473 | @@ -181,6 +181,15 @@ meta_stage_deactivate (ClutterStage *actor) |
4474 | } |
4475 | |
4476 | static void |
4477 | +on_power_save_changed (MetaMonitorManager *monitor_manager, |
4478 | + MetaStage *stage) |
4479 | +{ |
4480 | + if (meta_monitor_manager_get_power_save_mode (monitor_manager) == |
4481 | + META_POWER_SAVE_ON) |
4482 | + clutter_actor_queue_redraw (CLUTTER_ACTOR (stage)); |
4483 | +} |
4484 | + |
4485 | +static void |
4486 | meta_stage_class_init (MetaStageClass *klass) |
4487 | { |
4488 | ClutterStageClass *stage_class = (ClutterStageClass *) klass; |
4489 | @@ -209,11 +218,21 @@ meta_stage_init (MetaStage *stage) |
4490 | } |
4491 | |
4492 | ClutterActor * |
4493 | -meta_stage_new (void) |
4494 | +meta_stage_new (MetaBackend *backend) |
4495 | { |
4496 | - return g_object_new (META_TYPE_STAGE, |
4497 | - "cursor-visible", FALSE, |
4498 | - NULL); |
4499 | + MetaStage *stage; |
4500 | + MetaMonitorManager *monitor_manager; |
4501 | + |
4502 | + stage = g_object_new (META_TYPE_STAGE, |
4503 | + "cursor-visible", FALSE, |
4504 | + NULL); |
4505 | + |
4506 | + monitor_manager = meta_backend_get_monitor_manager (backend); |
4507 | + g_signal_connect (monitor_manager, "power-save-mode-changed", |
4508 | + G_CALLBACK (on_power_save_changed), |
4509 | + stage); |
4510 | + |
4511 | + return CLUTTER_ACTOR (stage); |
4512 | } |
4513 | |
4514 | static void |
4515 | diff --git a/src/backends/native/meta-crtc-kms.c b/src/backends/native/meta-crtc-kms.c |
4516 | index 79a9b1e..8c2fbfe 100644 |
4517 | --- a/src/backends/native/meta-crtc-kms.c |
4518 | +++ b/src/backends/native/meta-crtc-kms.c |
4519 | @@ -41,9 +41,6 @@ |
4520 | typedef struct _MetaCrtcKms |
4521 | { |
4522 | unsigned int index; |
4523 | - uint32_t underscan_prop_id; |
4524 | - uint32_t underscan_hborder_prop_id; |
4525 | - uint32_t underscan_vborder_prop_id; |
4526 | uint32_t primary_plane_id; |
4527 | uint32_t rotation_prop_id; |
4528 | uint32_t rotation_map[ALL_TRANSFORMS]; |
4529 | @@ -137,54 +134,6 @@ meta_crtc_kms_apply_transform (MetaCrtc *crtc) |
4530 | } |
4531 | } |
4532 | |
4533 | -void |
4534 | -meta_crtc_kms_set_underscan (MetaCrtc *crtc, |
4535 | - gboolean is_underscanning) |
4536 | -{ |
4537 | - MetaCrtcKms *crtc_kms = crtc->driver_private; |
4538 | - MetaGpu *gpu = meta_crtc_get_gpu (crtc); |
4539 | - MetaGpuKms *gpu_kms = META_GPU_KMS (gpu); |
4540 | - int kms_fd; |
4541 | - |
4542 | - if (!crtc_kms->underscan_prop_id) |
4543 | - return; |
4544 | - |
4545 | - kms_fd = meta_gpu_kms_get_fd (gpu_kms); |
4546 | - |
4547 | - if (is_underscanning) |
4548 | - { |
4549 | - drmModeObjectSetProperty (kms_fd, crtc->crtc_id, |
4550 | - DRM_MODE_OBJECT_CRTC, |
4551 | - crtc_kms->underscan_prop_id, (uint64_t) 1); |
4552 | - |
4553 | - if (crtc_kms->underscan_hborder_prop_id) |
4554 | - { |
4555 | - uint64_t value; |
4556 | - |
4557 | - value = crtc->current_mode->width * 0.05; |
4558 | - drmModeObjectSetProperty (kms_fd, crtc->crtc_id, |
4559 | - DRM_MODE_OBJECT_CRTC, |
4560 | - crtc_kms->underscan_hborder_prop_id, value); |
4561 | - } |
4562 | - if (crtc_kms->underscan_vborder_prop_id) |
4563 | - { |
4564 | - uint64_t value; |
4565 | - |
4566 | - value = crtc->current_mode->height * 0.05; |
4567 | - drmModeObjectSetProperty (kms_fd, crtc->crtc_id, |
4568 | - DRM_MODE_OBJECT_CRTC, |
4569 | - crtc_kms->underscan_vborder_prop_id, value); |
4570 | - } |
4571 | - |
4572 | - } |
4573 | - else |
4574 | - { |
4575 | - drmModeObjectSetProperty (kms_fd, crtc->crtc_id, |
4576 | - DRM_MODE_OBJECT_CRTC, |
4577 | - crtc_kms->underscan_prop_id, (uint64_t) 0); |
4578 | - } |
4579 | -} |
4580 | - |
4581 | static int |
4582 | find_property_index (MetaGpu *gpu, |
4583 | drmModeObjectPropertiesPtr props, |
4584 | @@ -534,43 +483,6 @@ init_crtc_rotations (MetaCrtc *crtc, |
4585 | } |
4586 | |
4587 | static void |
4588 | -find_crtc_properties (MetaCrtc *crtc, |
4589 | - MetaGpuKms *gpu_kms) |
4590 | -{ |
4591 | - MetaCrtcKms *crtc_kms = crtc->driver_private; |
4592 | - int kms_fd; |
4593 | - drmModeObjectPropertiesPtr props; |
4594 | - unsigned int i; |
4595 | - |
4596 | - kms_fd = meta_gpu_kms_get_fd (gpu_kms); |
4597 | - props = drmModeObjectGetProperties (kms_fd, crtc->crtc_id, |
4598 | - DRM_MODE_OBJECT_CRTC); |
4599 | - if (!props) |
4600 | - return; |
4601 | - |
4602 | - for (i = 0; i < props->count_props; i++) |
4603 | - { |
4604 | - drmModePropertyPtr prop = drmModeGetProperty (kms_fd, props->props[i]); |
4605 | - if (!prop) |
4606 | - continue; |
4607 | - |
4608 | - if ((prop->flags & DRM_MODE_PROP_ENUM) && |
4609 | - strcmp (prop->name, "underscan") == 0) |
4610 | - crtc_kms->underscan_prop_id = prop->prop_id; |
4611 | - else if ((prop->flags & DRM_MODE_PROP_RANGE) && |
4612 | - strcmp (prop->name, "underscan hborder") == 0) |
4613 | - crtc_kms->underscan_hborder_prop_id = prop->prop_id; |
4614 | - else if ((prop->flags & DRM_MODE_PROP_RANGE) && |
4615 | - strcmp (prop->name, "underscan vborder") == 0) |
4616 | - crtc_kms->underscan_vborder_prop_id = prop->prop_id; |
4617 | - |
4618 | - drmModeFreeProperty (prop); |
4619 | - } |
4620 | - |
4621 | - drmModeFreeObjectProperties (props); |
4622 | -} |
4623 | - |
4624 | -static void |
4625 | meta_crtc_destroy_notify (MetaCrtc *crtc) |
4626 | { |
4627 | MetaCrtcKms *crtc_kms = crtc->driver_private; |
4628 | @@ -628,7 +540,6 @@ meta_create_kms_crtc (MetaGpuKms *gpu_kms, |
4629 | crtc->driver_private = crtc_kms; |
4630 | crtc->driver_notify = (GDestroyNotify) meta_crtc_destroy_notify; |
4631 | |
4632 | - find_crtc_properties (crtc, gpu_kms); |
4633 | init_crtc_rotations (crtc, gpu); |
4634 | |
4635 | return crtc; |
4636 | diff --git a/src/backends/native/meta-crtc-kms.h b/src/backends/native/meta-crtc-kms.h |
4637 | index 622ea55..456f440 100644 |
4638 | --- a/src/backends/native/meta-crtc-kms.h |
4639 | +++ b/src/backends/native/meta-crtc-kms.h |
4640 | @@ -44,9 +44,6 @@ gboolean meta_crtc_kms_is_transform_handled (MetaCrtc *crtc, |
4641 | |
4642 | void meta_crtc_kms_apply_transform (MetaCrtc *crtc); |
4643 | |
4644 | -void meta_crtc_kms_set_underscan (MetaCrtc *crtc, |
4645 | - gboolean is_underscanning); |
4646 | - |
4647 | GArray * meta_crtc_kms_get_modifiers (MetaCrtc *crtc, |
4648 | uint32_t format); |
4649 | |
4650 | diff --git a/src/backends/native/meta-gpu-kms.c b/src/backends/native/meta-gpu-kms.c |
4651 | index d924466..c569b94 100644 |
4652 | --- a/src/backends/native/meta-gpu-kms.c |
4653 | +++ b/src/backends/native/meta-gpu-kms.c |
4654 | @@ -210,7 +210,7 @@ meta_gpu_kms_is_crtc_active (MetaGpuKms *gpu_kms, |
4655 | |
4656 | g_assert (meta_crtc_get_gpu (crtc) == META_GPU (gpu_kms)); |
4657 | |
4658 | - if (monitor_manager->power_save_mode != META_POWER_SAVE_ON) |
4659 | + if (meta_monitor_manager_get_power_save_mode (monitor_manager)) |
4660 | return FALSE; |
4661 | |
4662 | connected_crtc_found = FALSE; |
4663 | @@ -273,7 +273,8 @@ meta_gpu_kms_flip_crtc (MetaGpuKms *gpu_kms, |
4664 | int ret = -1; |
4665 | |
4666 | g_assert (meta_crtc_get_gpu (crtc) == gpu); |
4667 | - g_assert (monitor_manager->power_save_mode == META_POWER_SAVE_ON); |
4668 | + g_assert (meta_monitor_manager_get_power_save_mode (monitor_manager) == |
4669 | + META_POWER_SAVE_ON); |
4670 | |
4671 | get_crtc_drm_connectors (gpu, crtc, &connectors, &n_connectors); |
4672 | g_assert (n_connectors > 0); |
4673 | @@ -836,8 +837,6 @@ meta_gpu_kms_read_current (MetaGpu *gpu, |
4674 | GError **error) |
4675 | { |
4676 | MetaGpuKms *gpu_kms = META_GPU_KMS (gpu); |
4677 | - MetaMonitorManager *monitor_manager = |
4678 | - meta_gpu_get_monitor_manager (gpu); |
4679 | MetaKmsResources resources; |
4680 | g_autoptr (GError) local_error = NULL; |
4681 | |
4682 | @@ -855,8 +854,6 @@ meta_gpu_kms_read_current (MetaGpu *gpu, |
4683 | gpu_kms->max_buffer_width = resources.resources->max_width; |
4684 | gpu_kms->max_buffer_height = resources.resources->max_height; |
4685 | |
4686 | - monitor_manager->power_save_mode = META_POWER_SAVE_ON; |
4687 | - |
4688 | /* Note: we must not free the public structures (output, crtc, monitor |
4689 | mode and monitor info) here, they must be kept alive until the API |
4690 | users are done with them after we emit monitors-changed, and thus |
4691 | diff --git a/src/backends/native/meta-monitor-manager-kms.c b/src/backends/native/meta-monitor-manager-kms.c |
4692 | index c2c8ab5..9a03644 100644 |
4693 | --- a/src/backends/native/meta-monitor-manager-kms.c |
4694 | +++ b/src/backends/native/meta-monitor-manager-kms.c |
4695 | @@ -109,6 +109,21 @@ meta_monitor_manager_kms_read_edid (MetaMonitorManager *manager, |
4696 | } |
4697 | |
4698 | static void |
4699 | +meta_monitor_manager_kms_read_current_state (MetaMonitorManager *manager) |
4700 | +{ |
4701 | + MetaMonitorManagerClass *parent_class = |
4702 | + META_MONITOR_MANAGER_CLASS (meta_monitor_manager_kms_parent_class); |
4703 | + MetaPowerSave power_save_mode; |
4704 | + |
4705 | + power_save_mode = meta_monitor_manager_get_power_save_mode (manager); |
4706 | + if (power_save_mode != META_POWER_SAVE_ON) |
4707 | + meta_monitor_manager_power_save_mode_changed (manager, |
4708 | + META_POWER_SAVE_ON); |
4709 | + |
4710 | + parent_class->read_current_state (manager); |
4711 | +} |
4712 | + |
4713 | +static void |
4714 | meta_monitor_manager_kms_set_power_save_mode (MetaMonitorManager *manager, |
4715 | MetaPowerSave mode) |
4716 | { |
4717 | @@ -512,11 +527,11 @@ meta_monitor_manager_kms_calculate_monitor_mode_scale (MetaMonitorManager *manag |
4718 | } |
4719 | |
4720 | static float * |
4721 | -meta_monitor_manager_kms_calculate_supported_scales (MetaMonitorManager *manager, |
4722 | - MetaLogicalMonitorLayoutMode layout_mode, |
4723 | - MetaMonitor *monitor, |
4724 | - MetaMonitorMode *monitor_mode, |
4725 | - int *n_supported_scales) |
4726 | +meta_monitor_manager_kms_calculate_supported_scales (MetaMonitorManager *manager, |
4727 | + MetaLogicalMonitorLayoutMode layout_mode, |
4728 | + MetaMonitor *monitor, |
4729 | + MetaMonitorMode *monitor_mode, |
4730 | + int *n_supported_scales) |
4731 | { |
4732 | MetaMonitorScalesConstraint constraints = |
4733 | META_MONITOR_SCALES_CONSTRAINT_NONE; |
4734 | @@ -755,6 +770,7 @@ meta_monitor_manager_kms_class_init (MetaMonitorManagerKmsClass *klass) |
4735 | object_class->dispose = meta_monitor_manager_kms_dispose; |
4736 | |
4737 | manager_class->read_edid = meta_monitor_manager_kms_read_edid; |
4738 | + manager_class->read_current_state = meta_monitor_manager_kms_read_current_state; |
4739 | manager_class->ensure_initial_config = meta_monitor_manager_kms_ensure_initial_config; |
4740 | manager_class->apply_monitors_config = meta_monitor_manager_kms_apply_monitors_config; |
4741 | manager_class->set_power_save_mode = meta_monitor_manager_kms_set_power_save_mode; |
4742 | diff --git a/src/backends/native/meta-output-kms.c b/src/backends/native/meta-output-kms.c |
4743 | index f3fa17e..f3cc543 100644 |
4744 | --- a/src/backends/native/meta-output-kms.c |
4745 | +++ b/src/backends/native/meta-output-kms.c |
4746 | @@ -56,6 +56,10 @@ typedef struct _MetaOutputKms |
4747 | uint32_t edid_blob_id; |
4748 | uint32_t tile_blob_id; |
4749 | |
4750 | + uint32_t underscan_prop_id; |
4751 | + uint32_t underscan_hborder_prop_id; |
4752 | + uint32_t underscan_vborder_prop_id; |
4753 | + |
4754 | int suggested_x; |
4755 | int suggested_y; |
4756 | uint32_t hotplug_mode_update; |
4757 | @@ -66,13 +70,55 @@ typedef struct _MetaOutputKms |
4758 | void |
4759 | meta_output_kms_set_underscan (MetaOutput *output) |
4760 | { |
4761 | + MetaOutputKms *output_kms = output->driver_private; |
4762 | + MetaGpu *gpu = meta_output_get_gpu (output); |
4763 | + MetaGpuKms *gpu_kms = META_GPU_KMS (gpu); |
4764 | MetaCrtc *crtc; |
4765 | + int kms_fd; |
4766 | + uint32_t connector_id; |
4767 | |
4768 | - crtc = meta_output_get_assigned_crtc (output); |
4769 | - if (!crtc) |
4770 | + if (!output_kms->underscan_prop_id) |
4771 | return; |
4772 | |
4773 | - meta_crtc_kms_set_underscan (crtc, output->is_underscanning); |
4774 | + crtc = meta_output_get_assigned_crtc (output); |
4775 | + kms_fd = meta_gpu_kms_get_fd (gpu_kms); |
4776 | + connector_id = output_kms->connector->connector_id; |
4777 | + |
4778 | + if (output->is_underscanning && crtc && crtc->current_mode) |
4779 | + { |
4780 | + drmModeObjectSetProperty (kms_fd, connector_id, |
4781 | + DRM_MODE_OBJECT_CONNECTOR, |
4782 | + output_kms->underscan_prop_id, |
4783 | + (uint64_t) 1); |
4784 | + |
4785 | + if (output_kms->underscan_hborder_prop_id) |
4786 | + { |
4787 | + uint64_t value; |
4788 | + |
4789 | + value = MIN (128, crtc->current_mode->width * 0.05); |
4790 | + drmModeObjectSetProperty (kms_fd, connector_id, |
4791 | + DRM_MODE_OBJECT_CONNECTOR, |
4792 | + output_kms->underscan_hborder_prop_id, |
4793 | + value); |
4794 | + } |
4795 | + if (output_kms->underscan_vborder_prop_id) |
4796 | + { |
4797 | + uint64_t value; |
4798 | + |
4799 | + value = MIN (128, crtc->current_mode->height * 0.05); |
4800 | + drmModeObjectSetProperty (kms_fd, connector_id, |
4801 | + DRM_MODE_OBJECT_CONNECTOR, |
4802 | + output_kms->underscan_vborder_prop_id, |
4803 | + value); |
4804 | + } |
4805 | + } |
4806 | + else |
4807 | + { |
4808 | + drmModeObjectSetProperty (kms_fd, connector_id, |
4809 | + DRM_MODE_OBJECT_CONNECTOR, |
4810 | + output_kms->underscan_prop_id, |
4811 | + (uint64_t) 0); |
4812 | + } |
4813 | } |
4814 | |
4815 | uint32_t |
4816 | @@ -312,6 +358,15 @@ find_connector_properties (MetaGpuKms *gpu_kms, |
4817 | strcmp (prop->name, "panel orientation") == 0) |
4818 | handle_panel_orientation (output, prop, |
4819 | output_kms->connector->prop_values[i]); |
4820 | + else if ((prop->flags & DRM_MODE_PROP_ENUM) && |
4821 | + strcmp (prop->name, "underscan") == 0) |
4822 | + output_kms->underscan_prop_id = prop->prop_id; |
4823 | + else if ((prop->flags & DRM_MODE_PROP_RANGE) && |
4824 | + strcmp (prop->name, "underscan hborder") == 0) |
4825 | + output_kms->underscan_hborder_prop_id = prop->prop_id; |
4826 | + else if ((prop->flags & DRM_MODE_PROP_RANGE) && |
4827 | + strcmp (prop->name, "underscan vborder") == 0) |
4828 | + output_kms->underscan_vborder_prop_id = prop->prop_id; |
4829 | |
4830 | drmModeFreeProperty (prop); |
4831 | } |
4832 | @@ -639,6 +694,7 @@ meta_create_kms_output (MetaGpuKms *gpu_kms, |
4833 | output->suggested_x = output_kms->suggested_x; |
4834 | output->suggested_y = output_kms->suggested_y; |
4835 | output->hotplug_mode_update = output_kms->hotplug_mode_update; |
4836 | + output->supports_underscanning = output_kms->underscan_prop_id != 0; |
4837 | |
4838 | if (output_kms->edid_blob_id != 0) |
4839 | { |
4840 | diff --git a/src/backends/native/meta-renderer-native.c b/src/backends/native/meta-renderer-native.c |
4841 | index 771ca08..086e8e4 100644 |
4842 | --- a/src/backends/native/meta-renderer-native.c |
4843 | +++ b/src/backends/native/meta-renderer-native.c |
4844 | @@ -103,8 +103,6 @@ typedef struct _MetaRendererNativeGpuData |
4845 | #ifdef HAVE_EGL_DEVICE |
4846 | struct { |
4847 | EGLDeviceEXT device; |
4848 | - |
4849 | - gboolean no_egl_output_drm_flip_event; |
4850 | } egl; |
4851 | #endif |
4852 | |
4853 | @@ -215,6 +213,9 @@ struct _MetaRendererNative |
4854 | |
4855 | int64_t frame_counter; |
4856 | gboolean pending_unset_disabled_crtcs; |
4857 | + |
4858 | + GList *power_save_page_flip_closures; |
4859 | + guint power_save_page_flip_source_id; |
4860 | }; |
4861 | |
4862 | static void |
4863 | @@ -257,6 +258,15 @@ cogl_pixel_format_from_drm_format (uint32_t drm_format, |
4864 | CoglPixelFormat *out_format, |
4865 | CoglTextureComponents *out_components); |
4866 | |
4867 | +static MetaBackend * |
4868 | +backend_from_renderer_native (MetaRendererNative *renderer_native) |
4869 | +{ |
4870 | + MetaMonitorManager *monitor_manager = |
4871 | + META_MONITOR_MANAGER (renderer_native->monitor_manager_kms); |
4872 | + |
4873 | + return meta_monitor_manager_get_backend (monitor_manager); |
4874 | +} |
4875 | + |
4876 | static void |
4877 | meta_renderer_native_gpu_data_free (MetaRendererNativeGpuData *renderer_gpu_data) |
4878 | { |
4879 | @@ -1485,8 +1495,6 @@ flip_egl_stream (MetaOnscreenNative *onscreen_native, |
4880 | renderer_gpu_data = |
4881 | meta_renderer_native_get_gpu_data (onscreen_native->renderer_native, |
4882 | onscreen_native->render_gpu); |
4883 | - if (renderer_gpu_data->egl.no_egl_output_drm_flip_event) |
4884 | - return FALSE; |
4885 | |
4886 | closure_container = |
4887 | meta_gpu_kms_wrap_flip_closure (onscreen_native->render_gpu, |
4888 | @@ -1509,9 +1517,7 @@ flip_egl_stream (MetaOnscreenNative *onscreen_native, |
4889 | if (error->domain != META_EGL_ERROR || |
4890 | error->code != EGL_RESOURCE_BUSY_EXT) |
4891 | { |
4892 | - g_warning ("Failed to flip EGL stream (%s), relying on clock from " |
4893 | - "now on", error->message); |
4894 | - renderer_gpu_data->egl.no_egl_output_drm_flip_event = TRUE; |
4895 | + g_warning ("Failed to flip EGL stream: %s", error->message); |
4896 | } |
4897 | g_error_free (error); |
4898 | meta_gpu_kms_flip_closure_container_free (closure_container); |
4899 | @@ -1532,6 +1538,38 @@ is_timestamp_earlier_than (uint64_t ts1, |
4900 | return ts2 - ts1 < UINT64_MAX / 2; |
4901 | } |
4902 | |
4903 | +static gboolean |
4904 | +dummy_power_save_page_flip_cb (gpointer user_data) |
4905 | +{ |
4906 | + MetaRendererNative *renderer_native = user_data; |
4907 | + |
4908 | + g_list_free_full (renderer_native->power_save_page_flip_closures, |
4909 | + (GDestroyNotify) g_closure_unref); |
4910 | + renderer_native->power_save_page_flip_closures = NULL; |
4911 | + renderer_native->power_save_page_flip_source_id = 0; |
4912 | + |
4913 | + return G_SOURCE_REMOVE; |
4914 | +} |
4915 | + |
4916 | +static void |
4917 | +queue_dummy_power_save_page_flip (MetaRendererNative *renderer_native, |
4918 | + GClosure *flip_closure) |
4919 | +{ |
4920 | + const unsigned int timeout_ms = 100; |
4921 | + |
4922 | + if (!renderer_native->power_save_page_flip_source_id) |
4923 | + { |
4924 | + renderer_native->power_save_page_flip_source_id = |
4925 | + g_timeout_add (timeout_ms, |
4926 | + dummy_power_save_page_flip_cb, |
4927 | + renderer_native); |
4928 | + } |
4929 | + |
4930 | + renderer_native->power_save_page_flip_closures = |
4931 | + g_list_prepend (renderer_native->power_save_page_flip_closures, |
4932 | + g_closure_ref (flip_closure)); |
4933 | +} |
4934 | + |
4935 | typedef struct _RetryPageFlipData |
4936 | { |
4937 | MetaCrtc *crtc; |
4938 | @@ -1547,14 +1585,39 @@ retry_page_flip_data_free (RetryPageFlipData *retry_page_flip_data) |
4939 | g_free (retry_page_flip_data); |
4940 | } |
4941 | |
4942 | +static void |
4943 | +retry_page_flip_data_fake_flipped (RetryPageFlipData *retry_page_flip_data, |
4944 | + MetaOnscreenNative *onscreen_native) |
4945 | +{ |
4946 | + MetaCrtc *crtc = retry_page_flip_data->crtc; |
4947 | + MetaGpuKms *gpu_kms = META_GPU_KMS (meta_crtc_get_gpu (crtc)); |
4948 | + |
4949 | + if (gpu_kms != onscreen_native->render_gpu) |
4950 | + { |
4951 | + MetaOnscreenNativeSecondaryGpuState *secondary_gpu_state; |
4952 | + |
4953 | + secondary_gpu_state = |
4954 | + meta_onscreen_native_get_secondary_gpu_state (onscreen_native, |
4955 | + gpu_kms); |
4956 | + secondary_gpu_state->pending_flips--; |
4957 | + } |
4958 | + |
4959 | + onscreen_native->total_pending_flips--; |
4960 | +} |
4961 | + |
4962 | static gboolean |
4963 | retry_page_flips (gpointer user_data) |
4964 | { |
4965 | MetaOnscreenNative *onscreen_native = user_data; |
4966 | + MetaRendererNative *renderer_native = onscreen_native->renderer_native; |
4967 | + MetaMonitorManager *monitor_manager = |
4968 | + META_MONITOR_MANAGER (renderer_native->monitor_manager_kms); |
4969 | uint64_t now_us; |
4970 | + MetaPowerSave power_save_mode; |
4971 | GList *l; |
4972 | |
4973 | now_us = g_source_get_time (onscreen_native->retry_page_flips_source); |
4974 | + power_save_mode = meta_monitor_manager_get_power_save_mode (monitor_manager); |
4975 | |
4976 | l = onscreen_native->pending_page_flip_retries; |
4977 | while (l) |
4978 | @@ -1566,6 +1629,19 @@ retry_page_flips (gpointer user_data) |
4979 | g_autoptr (GError) error = NULL; |
4980 | gboolean did_flip; |
4981 | |
4982 | + if (power_save_mode != META_POWER_SAVE_ON) |
4983 | + { |
4984 | + onscreen_native->pending_page_flip_retries = |
4985 | + g_list_remove_link (onscreen_native->pending_page_flip_retries, l); |
4986 | + |
4987 | + retry_page_flip_data_fake_flipped (retry_page_flip_data, |
4988 | + onscreen_native); |
4989 | + retry_page_flip_data_free (retry_page_flip_data); |
4990 | + |
4991 | + l = l_next; |
4992 | + continue; |
4993 | + } |
4994 | + |
4995 | if (is_timestamp_earlier_than (now_us, |
4996 | retry_page_flip_data->retry_time_us)) |
4997 | { |
4998 | @@ -1582,7 +1658,7 @@ retry_page_flips (gpointer user_data) |
4999 | g_error_matches (error, G_IO_ERROR, G_IO_ERROR_BUSY)) |
5000 | { |
The diff has been truncated for viewing.
Looks like what I was expecting...