~larsu/gtk/images-in-menubars

« back to all changes in this revision

Viewing changes to debian/patches/mir-backend.patch

  • Committer: Iain Lane
  • Date: 2014-12-17 16:11:02 UTC
  • mfrom: (388.1.7 refresh-mir-backend)
  • Revision ID: iain.lane@canonical.com-20141217161102-ueuhumkxzwvasn0p
MergeĀ lp:~attente/gtk/refresh-mir-backend

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
From 5808594aaff557dfc9ddef82246ddd4ed902a8c5 Mon Sep 17 00:00:00 2001
 
1
From 122076d4b6f37fa427ea592194f6fe5bacaa9e70 Mon Sep 17 00:00:00 2001
2
2
From: Robert Ancell <robert.ancell@canonical.com>
3
3
Date: Tue, 20 May 2014 10:03:30 +1200
4
 
Subject: [PATCH] Gdk: add an experimental backend for mir
 
4
Subject: [PATCH 1/2] Gdk: add an experimental backend for mir
5
5
 
6
6
Backported from:
7
7
0f26b26f1d93f002ccd5fe6b6fd636172bfbb24b
 
8
887b7356c369e58a959b99d88246df8303e34531
8
9
c41231cc0fdc791a7a69cdd77af51c8162f44aa4
9
10
053b65a21af312b8b9361367939a221aa7f474a7
10
11
2fdb266c0d0f038a74decda7440ebbb7bdb02e68
 
12
063f79b5946198eb5efec0133627a12a75d154a7
11
13
ec729d06491a2a5bb9ba3f287fbc102b5036bc8f
12
14
92c2e99ddac668d729f42bff501f70fb56fbb76c
13
15
c6de20496c4075a0f1daf8be450d8522aaaea82f
18
20
4e4ccb76cd8b5b7dc4342f35fcf64ace30019641
19
21
c7e7e350839b19732a2eea7a2151c0c3a76c2544
20
22
c42146d88c324189a3a70189f1a60156697ad9ab
 
23
8bc523ef5915d4ab7ced843929c8e3f1bf754016
 
24
f5c5e9385e960a74ce38bc58a30fa36474d0cd6a
 
25
5ff39b207b373754007a99be6286bb7b93ecb49d
 
26
acfc4f891030d7339c221bdb57df9af8994fd6e0
 
27
da8fdab87b4cc96b9614ccb6abb0682def324f30
 
28
e0e46a4f6bf852d5ead8b8c015aa8eaf4e80599e
 
29
60e185e496180dad0be322a970e4aa17be1c8809
 
30
b8925253b66a63594f5d373dc10c564f0d184eb4
21
31
---
22
 
 Makefile.am                      |    6 +-
23
 
 configure.ac                     |   34 +-
24
 
 docs/reference/gtk/Makefile.am   |    1 +
25
 
 docs/reference/gtk/building.sgml |   11 +-
26
 
 docs/reference/gtk/gtk-docs.sgml |    1 +
27
 
 docs/reference/gtk/mir.xml       |   35 +
28
 
 docs/reference/gtk/running.sgml  |    5 +
29
 
 gdk/Makefile.am                  |    6 +-
30
 
 gdk/gdkdisplaymanager.c          |    7 +
31
 
 gdk/mir/Makefile.am              |   39 ++
32
 
 gdk/mir/gdkmir-debug.c           |  293 +++++++++
33
 
 gdk/mir/gdkmir-private.h         |   90 +++
34
 
 gdk/mir/gdkmir.h                 |   39 ++
35
 
 gdk/mir/gdkmircursor.c           |  177 +++++
36
 
 gdk/mir/gdkmirdevicemanager.c    |  120 ++++
37
 
 gdk/mir/gdkmirdisplay.c          |  565 ++++++++++++++++
38
 
 gdk/mir/gdkmireventsource.c      |  630 ++++++++++++++++++
39
 
 gdk/mir/gdkmirkeyboard.c         |  173 +++++
40
 
 gdk/mir/gdkmirkeymap.c           |  466 ++++++++++++++
41
 
 gdk/mir/gdkmirpointer.c          |  250 ++++++++
42
 
 gdk/mir/gdkmirscreen.c           |  801 +++++++++++++++++++++++
43
 
 gdk/mir/gdkmirwindow.c           |   52 ++
44
 
 gdk/mir/gdkmirwindowimpl.c       | 1320 ++++++++++++++++++++++++++++++++++++++
45
 
 gtk/gtktooltip.c                 |   16 +
46
 
 24 files changed, 5130 insertions(+), 7 deletions(-)
 
32
 Makefile.am                        |    6 +-
 
33
 configure.ac                       |   35 +-
 
34
 docs/reference/gtk/Makefile.am     |    1 +
 
35
 docs/reference/gtk/building.sgml   |   11 +-
 
36
 docs/reference/gtk/gtk-docs.sgml   |    1 +
 
37
 docs/reference/gtk/mir.xml         |   35 +
 
38
 docs/reference/gtk/running.sgml    |    5 +
 
39
 gdk/Makefile.am                    |    6 +-
 
40
 gdk/broadway/gdkdisplay-broadway.c |   15 -
 
41
 gdk/gdkdisplay.c                   |   15 +
 
42
 gdk/gdkdisplaymanager.c            |    7 +
 
43
 gdk/mir/Makefile.am                |   39 ++
 
44
 gdk/mir/gdkmir-debug.c             |  293 ++++++++
 
45
 gdk/mir/gdkmir-private.h           |   92 +++
 
46
 gdk/mir/gdkmir.h                   |   39 ++
 
47
 gdk/mir/gdkmircursor.c             |  177 +++++
 
48
 gdk/mir/gdkmirdevicemanager.c      |  120 ++++
 
49
 gdk/mir/gdkmirdisplay.c            |  549 +++++++++++++++
 
50
 gdk/mir/gdkmireventsource.c        |  631 +++++++++++++++++
 
51
 gdk/mir/gdkmirkeyboard.c           |  173 +++++
 
52
 gdk/mir/gdkmirkeymap.c             |  466 +++++++++++++
 
53
 gdk/mir/gdkmirpointer.c            |  250 +++++++
 
54
 gdk/mir/gdkmirscreen.c             |  804 ++++++++++++++++++++++
 
55
 gdk/mir/gdkmirwindow.c             |   52 ++
 
56
 gdk/mir/gdkmirwindowimpl.c         | 1336 ++++++++++++++++++++++++++++++++++++
 
57
 gdk/wayland/gdkdisplay-wayland.c   |   15 -
 
58
 gdk/win32/gdkdisplay-win32.c       |   15 -
 
59
 gdk/x11/gdkdisplay-x11.c           |   15 -
 
60
 gtk/gtktooltip.c                   |   16 +
 
61
 gtk/gtkwindow.c                    |    9 +
 
62
 30 files changed, 5161 insertions(+), 67 deletions(-)
47
63
 create mode 100644 docs/reference/gtk/mir.xml
48
64
 create mode 100644 gdk/mir/Makefile.am
49
65
 create mode 100644 gdk/mir/gdkmir-debug.c
60
76
 create mode 100644 gdk/mir/gdkmirwindow.c
61
77
 create mode 100644 gdk/mir/gdkmirwindowimpl.c
62
78
 
63
 
Index: b/Makefile.am
64
 
===================================================================
 
79
diff --git a/Makefile.am b/Makefile.am
 
80
index 2cb7769..37bc9ff 100644
65
81
--- a/Makefile.am
66
82
+++ b/Makefile.am
67
 
@@ -33,11 +33,11 @@
 
83
@@ -33,11 +33,11 @@ MAINTAINERCLEANFILES = \
68
84
 
69
85
 
70
86
 ## Copy .pc files to target-specific names
78
94
        rm -f $@ && \
79
95
        cp gdk-3.0.pc $@
80
96
 
81
 
@@ -59,12 +59,14 @@
 
97
@@ -59,12 +59,14 @@ DISTCLEANFILES = \
82
98
        gtk+-quartz-3.0.pc              \
83
99
        gtk+-broadway-3.0.pc            \
84
100
        gtk+-wayland-3.0.pc             \
93
109
        gail-3.0.pc                     \
94
110
        config.lt
95
111
 
96
 
Index: b/configure.ac
97
 
===================================================================
 
112
diff --git a/configure.ac b/configure.ac
 
113
index cccdae9..43e6245 100644
98
114
--- a/configure.ac
99
115
+++ b/configure.ac
100
 
@@ -329,6 +329,10 @@
 
116
@@ -48,6 +48,7 @@ m4_define([cairo_required_version], [1.12.0])
 
117
 m4_define([gdk_pixbuf_required_version], [2.30.0])
 
118
 m4_define([introspection_required_version], [1.39.0])
 
119
 m4_define([wayland_required_version], [1.5.91])
 
120
+m4_define([mirclient_required_version], [0.9.0])
 
121
 GLIB_REQUIRED_VERSION=glib_required_version
 
122
 PANGO_REQUIRED_VERSION=pango_required_version
 
123
 ATK_REQUIRED_VERSION=atk_required_version
 
124
@@ -329,6 +330,10 @@ AC_ARG_ENABLE(wayland-backend,
101
125
               [AS_HELP_STRING([--enable-wayland-backend],
102
126
                               [enable the wayland gdk backend])],
103
127
                              [backend_set=yes])
108
132
 
109
133
 if test -z "$backend_set"; then
110
134
   if test "$platform_win32" = yes; then
111
 
@@ -336,6 +340,7 @@
 
135
@@ -336,6 +341,7 @@ if test -z "$backend_set"; then
112
136
   else
113
137
     enable_x11_backend=yes
114
138
     enable_wayland_backend=maybe
116
140
   fi
117
141
 fi
118
142
 
119
 
@@ -457,6 +462,30 @@
 
143
@@ -457,6 +463,30 @@ else
120
144
   AM_CONDITIONAL(USE_WAYLAND, false)
121
145
 fi
122
146
 
123
 
+MIR_DEPENDENCIES="mirclient"
 
147
+MIR_DEPENDENCIES="mirclient >= mirclient_required_version"
124
148
+if test "$enable_mir_backend" = "maybe" ; then
125
149
+  PKG_CHECK_EXISTS($MIR_DEPENDENCIES, [have_mir_deps=yes], [have_mir_deps=no])
126
150
+  AC_MSG_CHECKING([for MIR_DEPENDENCIES])
147
171
 # strip leading space
148
172
 GDK_BACKENDS=${GDK_BACKENDS#* }
149
173
 
150
 
@@ -1326,7 +1355,7 @@
 
174
@@ -1326,7 +1356,7 @@ CFLAGS="$saved_cflags"
151
175
 LDFLAGS="$saved_ldflags"
152
176
 
153
177
 GDK_PACKAGES="$PANGO_PACKAGES gdk-pixbuf-2.0 >= gdk_pixbuf_required_version cairo >= cairo_required_version cairo-gobject >= cairo_required_version"
156
180
 if test "x$enable_x11_backend" = xyes; then
157
181
   GDK_PRIVATE_PACKAGES="$GDK_PRIVATE_PACKAGES pangoft2"
158
182
 fi
159
 
@@ -1363,7 +1392,7 @@
 
183
@@ -1363,7 +1393,7 @@ fi
160
184
 PKG_CHECK_MODULES(ATK, $ATK_PACKAGES)
161
185
 
162
186
 GTK_PACKAGES="atk >= atk_required_version cairo >= cairo_required_version cairo-gobject >= cairo_required_version gdk-pixbuf-2.0 >= gdk_pixbuf_required_version gio-2.0 >= glib_required_version"
165
189
 if test "x$enable_x11_backend" = xyes; then
166
190
   GTK_PRIVATE_PACKAGES="$GTK_PRIVATE_PACKAGES pangoft2"
167
191
 fi
168
 
@@ -1903,6 +1932,7 @@
 
192
@@ -1903,6 +1933,7 @@ gdk/win32/rc/Makefile
169
193
 gdk/win32/rc/gdk.rc
170
194
 gdk/quartz/Makefile
171
195
 gdk/wayland/Makefile
173
197
 gdk/gdkversionmacros.h
174
198
 gtk/Makefile
175
199
 gtk/makefile.msc
176
 
Index: b/docs/reference/gtk/Makefile.am
177
 
===================================================================
 
200
diff --git a/docs/reference/gtk/Makefile.am b/docs/reference/gtk/Makefile.am
 
201
index 968384c..74ef369 100644
178
202
--- a/docs/reference/gtk/Makefile.am
179
203
+++ b/docs/reference/gtk/Makefile.am
180
 
@@ -145,6 +145,7 @@
 
204
@@ -145,6 +145,7 @@ content_files =                                     \
181
205
        osx.sgml                                \
182
206
        broadway.xml                            \
183
207
        wayland.xml                             \
185
209
        question_index.sgml                     \
186
210
        resources.sgml                          \
187
211
        text_widget.sgml                        \
188
 
Index: b/docs/reference/gtk/building.sgml
189
 
===================================================================
 
212
diff --git a/docs/reference/gtk/building.sgml b/docs/reference/gtk/building.sgml
 
213
index b7479e7..445e1fd 100644
190
214
--- a/docs/reference/gtk/building.sgml
191
215
+++ b/docs/reference/gtk/building.sgml
192
 
@@ -395,6 +395,11 @@
 
216
@@ -395,6 +395,11 @@ How to compile GTK+ itself
193
217
           </group>
194
218
           <sbr/>
195
219
           <group>
201
225
             <arg choice="plain">--enable-introspection=[no/auto/yes]</arg>
202
226
           </group>
203
227
           <sbr/>
204
 
@@ -595,8 +600,10 @@
 
228
@@ -595,8 +600,10 @@ How to compile GTK+ itself
205
229
           <systemitem>--disable-quartz-backend</systemitem>,
206
230
           <systemitem>--enable-broadway-backend</systemitem>,
207
231
           <systemitem>--disable-broadway-backend</systemitem>,
214
238
 
215
239
         <para>
216
240
           Enables specific backends for GDK.  If none of these options
217
 
Index: b/docs/reference/gtk/gtk-docs.sgml
218
 
===================================================================
 
241
diff --git a/docs/reference/gtk/gtk-docs.sgml b/docs/reference/gtk/gtk-docs.sgml
 
242
index 2e00bae..8f4a8d1 100644
219
243
--- a/docs/reference/gtk/gtk-docs.sgml
220
244
+++ b/docs/reference/gtk/gtk-docs.sgml
221
245
@@ -413,6 +413,7 @@
226
250
   </part>
227
251
 
228
252
   <xi:include href="glossary.xml" />
229
 
Index: b/docs/reference/gtk/mir.xml
230
 
===================================================================
 
253
diff --git a/docs/reference/gtk/mir.xml b/docs/reference/gtk/mir.xml
 
254
new file mode 100644
 
255
index 0000000..3a0a52e
231
256
--- /dev/null
232
257
+++ b/docs/reference/gtk/mir.xml
233
258
@@ -0,0 +1,35 @@
266
291
+</refsect1>
267
292
+
268
293
+</refentry>
269
 
Index: b/docs/reference/gtk/running.sgml
270
 
===================================================================
 
294
diff --git a/docs/reference/gtk/running.sgml b/docs/reference/gtk/running.sgml
 
295
index 321593a..1aa2291 100644
271
296
--- a/docs/reference/gtk/running.sgml
272
297
+++ b/docs/reference/gtk/running.sgml
273
 
@@ -487,6 +487,11 @@
 
298
@@ -487,6 +487,11 @@ nevertheless.
274
299
         <listitem><para>Selects the Wayland backend for connecting to Wayland display servers</para></listitem>
275
300
       </varlistentry>
276
301
 
282
307
     </variablelist>
283
308
     Since 3.10, this environment variable can contain a comma-separated list
284
309
     of backend names, which are tried in order. The list may also contain
285
 
Index: b/gdk/Makefile.am
286
 
===================================================================
 
310
diff --git a/gdk/Makefile.am b/gdk/Makefile.am
 
311
index 5f0c1e5..1e24b6e 100644
287
312
--- a/gdk/Makefile.am
288
313
+++ b/gdk/Makefile.am
289
 
@@ -13,7 +13,7 @@
 
314
@@ -13,7 +13,7 @@ INTROSPECTION_COMPILER_ARGS = \
290
315
 
291
316
 SUBDIRS = $(GDK_BACKENDS) .
292
317
 
295
320
 
296
321
 CLEANFILES =
297
322
 
298
 
@@ -201,6 +201,10 @@
 
323
@@ -201,6 +201,10 @@ if USE_WAYLAND
299
324
 libgdk_3_la_LIBADD += wayland/libgdk-wayland.la
300
325
 endif
301
326
 
306
331
 if HAVE_INTROSPECTION
307
332
 
308
333
 introspection_files =          \
309
 
Index: b/gdk/gdkdisplaymanager.c
310
 
===================================================================
 
334
diff --git a/gdk/broadway/gdkdisplay-broadway.c b/gdk/broadway/gdkdisplay-broadway.c
 
335
index 53c675d..307728f 100644
 
336
--- a/gdk/broadway/gdkdisplay-broadway.c
 
337
+++ b/gdk/broadway/gdkdisplay-broadway.c
 
338
@@ -330,19 +330,6 @@ gdk_broadway_display_get_next_serial (GdkDisplay *display)
 
339
   return _gdk_broadway_server_get_next_serial (broadway_display->server);
 
340
 }
 
341
 
 
342
-static void
 
343
-gdk_broadway_display_event_data_copy (GdkDisplay    *display,
 
344
-                                     const GdkEvent *src,
 
345
-                                     GdkEvent       *dst)
 
346
-{
 
347
-}
 
348
-
 
349
-static void
 
350
-gdk_broadway_display_event_data_free (GdkDisplay    *display,
 
351
-                                     GdkEvent *event)
 
352
-{
 
353
-}
 
354
-
 
355
 void
 
356
 gdk_broadway_display_show_keyboard (GdkBroadwayDisplay *display)
 
357
 {
 
358
@@ -398,8 +385,6 @@ gdk_broadway_display_class_init (GdkBroadwayDisplayClass * class)
 
359
   display_class->after_process_all_updates = _gdk_broadway_display_after_process_all_updates;
 
360
   display_class->get_next_serial = gdk_broadway_display_get_next_serial;
 
361
   display_class->notify_startup_complete = gdk_broadway_display_notify_startup_complete;
 
362
-  display_class->event_data_copy = gdk_broadway_display_event_data_copy;
 
363
-  display_class->event_data_free = gdk_broadway_display_event_data_free;
 
364
   display_class->create_window_impl = _gdk_broadway_display_create_window_impl;
 
365
   display_class->get_keymap = _gdk_broadway_display_get_keymap;
 
366
   display_class->get_selection_owner = _gdk_broadway_display_get_selection_owner;
 
367
diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c
 
368
index 34b6cab..5ccfe01 100644
 
369
--- a/gdk/gdkdisplay.c
 
370
+++ b/gdk/gdkdisplay.c
 
371
@@ -111,6 +111,19 @@ gdk_display_real_opened (GdkDisplay *display)
 
372
 }
 
373
 
 
374
 static void
 
375
+gdk_display_real_event_data_copy (GdkDisplay     *display,
 
376
+                                  const GdkEvent *src,
 
377
+                                  GdkEvent       *dst)
 
378
+{
 
379
+}
 
380
+
 
381
+static void
 
382
+gdk_display_real_event_data_free (GdkDisplay     *display,
 
383
+                                  GdkEvent       *dst)
 
384
+{
 
385
+}
 
386
+
 
387
+static void
 
388
 gdk_display_class_init (GdkDisplayClass *class)
 
389
 {
 
390
   GObjectClass *object_class = G_OBJECT_CLASS (class);
 
391
@@ -123,6 +136,8 @@ gdk_display_class_init (GdkDisplayClass *class)
 
392
 
 
393
   class->opened = gdk_display_real_opened;
 
394
   class->make_default = gdk_display_real_make_default;
 
395
+  class->event_data_copy = gdk_display_real_event_data_copy;
 
396
+  class->event_data_free = gdk_display_real_event_data_free;
 
397
 
 
398
   /**
 
399
    * GdkDisplay::opened:
 
400
diff --git a/gdk/gdkdisplaymanager.c b/gdk/gdkdisplaymanager.c
 
401
index c6813d0..c9afbca 100644
311
402
--- a/gdk/gdkdisplaymanager.c
312
403
+++ b/gdk/gdkdisplaymanager.c
313
404
@@ -60,6 +60,10 @@
321
412
 /**
322
413
  * SECTION:gdkdisplaymanager
323
414
  * @Short_description: Maintains a list of all open GdkDisplays
324
 
@@ -272,6 +276,9 @@
 
415
@@ -272,6 +276,9 @@ static GdkBackend gdk_backends[] = {
325
416
 #ifdef GDK_WINDOWING_WAYLAND
326
417
   { "wayland",  _gdk_wayland_display_open },
327
418
 #endif
331
422
 #ifdef GDK_WINDOWING_BROADWAY
332
423
   { "broadway", _gdk_broadway_display_open },
333
424
 #endif
334
 
Index: b/gdk/mir/Makefile.am
335
 
===================================================================
 
425
diff --git a/gdk/mir/Makefile.am b/gdk/mir/Makefile.am
 
426
new file mode 100644
 
427
index 0000000..026ce79
336
428
--- /dev/null
337
429
+++ b/gdk/mir/Makefile.am
338
430
@@ -0,0 +1,39 @@
375
467
+       gdkmir.h
376
468
+
377
469
+-include $(top_srcdir)/git.mk
378
 
Index: b/gdk/mir/gdkmir-debug.c
379
 
===================================================================
 
470
diff --git a/gdk/mir/gdkmir-debug.c b/gdk/mir/gdkmir-debug.c
 
471
new file mode 100644
 
472
index 0000000..ef57eff
380
473
--- /dev/null
381
474
+++ b/gdk/mir/gdkmir-debug.c
382
475
@@ -0,0 +1,293 @@
673
766
+      break;
674
767
+    }
675
768
+}
676
 
Index: b/gdk/mir/gdkmir-private.h
677
 
===================================================================
 
769
diff --git a/gdk/mir/gdkmir-private.h b/gdk/mir/gdkmir-private.h
 
770
new file mode 100644
 
771
index 0000000..8305096
678
772
--- /dev/null
679
773
+++ b/gdk/mir/gdkmir-private.h
680
774
@@ -0,0 +1,92 @@
770
864
+void _gdk_mir_print_event (const MirEvent *event);
771
865
+
772
866
+#endif /* __GDK_PRIVATE_MIR_H__ */
773
 
Index: b/gdk/mir/gdkmir.h
774
 
===================================================================
 
867
diff --git a/gdk/mir/gdkmir.h b/gdk/mir/gdkmir.h
 
868
new file mode 100644
 
869
index 0000000..00bbda1
775
870
--- /dev/null
776
871
+++ b/gdk/mir/gdkmir.h
777
872
@@ -0,0 +1,39 @@
802
897
+#define GDK_IS_MIR_DISPLAY(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_MIR_DISPLAY))
803
898
+
804
899
+#define GDK_TYPE_MIR_WINDOW              (gdk_mir_window_get_type ())
805
 
+#define GDK_IS_WINDOW_MIR(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WINDOW_MIR))
 
900
+#define GDK_IS_WINDOW_MIR(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_MIR_WINDOW))
806
901
+
807
902
+GDK_AVAILABLE_IN_3_10
808
903
+GType gdk_mir_display_get_type (void);
809
904
+
810
905
+GDK_AVAILABLE_IN_3_10
811
 
+struct MirConnection *gdk_mir_display_get_mir_connection (GdkDisplay *display);
 
906
+MirConnection *gdk_mir_display_get_mir_connection (GdkDisplay *display);
812
907
+
813
908
+GDK_AVAILABLE_IN_3_10
814
909
+GType gdk_mir_window_get_type (void);
815
910
+
816
911
+#endif /* __GDK_MIR_H__ */
817
 
Index: b/gdk/mir/gdkmircursor.c
818
 
===================================================================
 
912
diff --git a/gdk/mir/gdkmircursor.c b/gdk/mir/gdkmircursor.c
 
913
new file mode 100644
 
914
index 0000000..7ce158a
819
915
--- /dev/null
820
916
+++ b/gdk/mir/gdkmircursor.c
821
917
@@ -0,0 +1,177 @@
996
1092
+  cursor_class->get_surface = gdk_mir_cursor_get_surface;
997
1093
+  object_class->finalize = gdk_mir_cursor_finalize;
998
1094
+}
999
 
Index: b/gdk/mir/gdkmirdevicemanager.c
1000
 
===================================================================
 
1095
diff --git a/gdk/mir/gdkmirdevicemanager.c b/gdk/mir/gdkmirdevicemanager.c
 
1096
new file mode 100644
 
1097
index 0000000..c94f8a3
1001
1098
--- /dev/null
1002
1099
+++ b/gdk/mir/gdkmirdevicemanager.c
1003
1100
@@ -0,0 +1,120 @@
1121
1218
+  device_manager_class->get_client_pointer = gdk_mir_device_manager_get_client_pointer;
1122
1219
+  object_class->constructed = gdk_mir_device_manager_constructed;
1123
1220
+}
1124
 
Index: b/gdk/mir/gdkmirdisplay.c
1125
 
===================================================================
 
1221
diff --git a/gdk/mir/gdkmirdisplay.c b/gdk/mir/gdkmirdisplay.c
 
1222
new file mode 100644
 
1223
index 0000000..207342c
1126
1224
--- /dev/null
1127
1225
+++ b/gdk/mir/gdkmirdisplay.c
1128
 
@@ -0,0 +1,565 @@
 
1226
@@ -0,0 +1,549 @@
1129
1227
+/*
1130
1228
+ * Copyright Ā© 2014 Canonical Ltd
1131
1229
+ *
1276
1374
+{
1277
1375
+  GdkMirDisplay *display = GDK_MIR_DISPLAY (object);
1278
1376
+
1279
 
+  g_object_unref (display->screen);
1280
 
+  display->screen = NULL;
 
1377
+  g_clear_object (&display->screen);
 
1378
+  g_clear_object (&display->keymap);
 
1379
+  g_clear_pointer (&display->event_source, g_source_unref);
1281
1380
+
1282
1381
+  G_OBJECT_CLASS (gdk_mir_display_parent_class)->dispose (object);
1283
1382
+}
1505
1604
+}
1506
1605
+
1507
1606
+static void
1508
 
+gdk_mir_display_event_data_copy (GdkDisplay     *display,
1509
 
+                                 const GdkEvent *src,
1510
 
+                                 GdkEvent       *dst)
1511
 
+{
1512
 
+  //g_printerr ("gdk_mir_display_event_data_copy\n");
1513
 
+}
1514
 
+
1515
 
+static void
1516
 
+gdk_mir_display_event_data_free (GdkDisplay *display,
1517
 
+                                 GdkEvent   *event)
1518
 
+{
1519
 
+  //g_printerr ("gdk_mir_display_event_data_free\n");
1520
 
+}
1521
 
+
1522
 
+static void
1523
1607
+gdk_mir_display_create_window_impl (GdkDisplay    *display,
1524
1608
+                                    GdkWindow     *window,
1525
1609
+                                    GdkWindow     *real_parent,
1677
1761
+  display_class->after_process_all_updates = gdk_mir_display_after_process_all_updates;
1678
1762
+  display_class->get_next_serial = gdk_mir_display_get_next_serial;
1679
1763
+  display_class->notify_startup_complete = gdk_mir_display_notify_startup_complete;
1680
 
+  display_class->event_data_copy = gdk_mir_display_event_data_copy;
1681
 
+  display_class->event_data_free = gdk_mir_display_event_data_free;
1682
1764
+  display_class->create_window_impl = gdk_mir_display_create_window_impl;
1683
1765
+  display_class->get_keymap = gdk_mir_display_get_keymap;
1684
1766
+  display_class->push_error_trap = gdk_mir_display_push_error_trap;
1691
1773
+  display_class->text_property_to_utf8_list = gdk_mir_display_text_property_to_utf8_list;
1692
1774
+  display_class->utf8_to_string_target = gdk_mir_display_utf8_to_string_target;
1693
1775
+}
1694
 
Index: b/gdk/mir/gdkmireventsource.c
1695
 
===================================================================
 
1776
diff --git a/gdk/mir/gdkmireventsource.c b/gdk/mir/gdkmireventsource.c
 
1777
new file mode 100644
 
1778
index 0000000..cfe36e8
1696
1779
--- /dev/null
1697
1780
+++ b/gdk/mir/gdkmireventsource.c
1698
1781
@@ -0,0 +1,631 @@
1860
1943
+  event->scroll.y = y;
1861
1944
+  event->scroll.state = state;
1862
1945
+  event->scroll.direction = GDK_SCROLL_SMOOTH;
1863
 
+  event->scroll.delta_x = delta_x;
1864
 
+  event->scroll.delta_y = delta_y;
 
1946
+  event->scroll.delta_x = -delta_x;
 
1947
+  event->scroll.delta_y = -delta_y;
1865
1948
+
1866
1949
+  send_event (window, get_pointer (window), event);
1867
1950
+}
2327
2410
+
2328
2411
+  g_main_context_wakeup (NULL);
2329
2412
+}
2330
 
Index: b/gdk/mir/gdkmirkeyboard.c
2331
 
===================================================================
 
2413
diff --git a/gdk/mir/gdkmirkeyboard.c b/gdk/mir/gdkmirkeyboard.c
 
2414
new file mode 100644
 
2415
index 0000000..86c0d9f
2332
2416
--- /dev/null
2333
2417
+++ b/gdk/mir/gdkmirkeyboard.c
2334
2418
@@ -0,0 +1,173 @@
2505
2589
+  device_class->window_at_position = gdk_mir_keyboard_window_at_position;
2506
2590
+  device_class->select_window_events = gdk_mir_keyboard_select_window_events;
2507
2591
+}
2508
 
Index: b/gdk/mir/gdkmirkeymap.c
2509
 
===================================================================
 
2592
diff --git a/gdk/mir/gdkmirkeymap.c b/gdk/mir/gdkmirkeymap.c
 
2593
new file mode 100644
 
2594
index 0000000..3e8c829
2510
2595
--- /dev/null
2511
2596
+++ b/gdk/mir/gdkmirkeymap.c
2512
2597
@@ -0,0 +1,466 @@
2976
3061
+  keymap_class->map_virtual_modifiers = gdk_mir_keymap_map_virtual_modifiers;
2977
3062
+  keymap_class->get_modifier_state = gdk_mir_keymap_get_modifier_state;
2978
3063
+}
2979
 
Index: b/gdk/mir/gdkmirpointer.c
2980
 
===================================================================
 
3064
diff --git a/gdk/mir/gdkmirpointer.c b/gdk/mir/gdkmirpointer.c
 
3065
new file mode 100644
 
3066
index 0000000..96c7e74
2981
3067
--- /dev/null
2982
3068
+++ b/gdk/mir/gdkmirpointer.c
2983
3069
@@ -0,0 +1,250 @@
3231
3317
+  device_class->window_at_position = gdk_mir_pointer_window_at_position;
3232
3318
+  device_class->select_window_events = gdk_mir_pointer_select_window_events;
3233
3319
+}
3234
 
Index: b/gdk/mir/gdkmirscreen.c
3235
 
===================================================================
 
3320
diff --git a/gdk/mir/gdkmirscreen.c b/gdk/mir/gdkmirscreen.c
 
3321
new file mode 100644
 
3322
index 0000000..2b53cef
3236
3323
--- /dev/null
3237
3324
+++ b/gdk/mir/gdkmirscreen.c
3238
3325
@@ -0,0 +1,804 @@
4040
4127
+  screen_class->query_visual_types = gdk_mir_screen_query_visual_types;
4041
4128
+  screen_class->get_monitor_scale_factor = gdk_mir_screen_get_monitor_scale_factor;
4042
4129
+}
4043
 
Index: b/gdk/mir/gdkmirwindow.c
4044
 
===================================================================
 
4130
diff --git a/gdk/mir/gdkmirwindow.c b/gdk/mir/gdkmirwindow.c
 
4131
new file mode 100644
 
4132
index 0000000..03da7e0
4045
4133
--- /dev/null
4046
4134
+++ b/gdk/mir/gdkmirwindow.c
4047
4135
@@ -0,0 +1,52 @@
4097
4185
+gdk_mir_window_class_init (GdkMirWindowClass *klass)
4098
4186
+{
4099
4187
+}
4100
 
Index: b/gdk/mir/gdkmirwindowimpl.c
4101
 
===================================================================
 
4188
diff --git a/gdk/mir/gdkmirwindowimpl.c b/gdk/mir/gdkmirwindowimpl.c
 
4189
new file mode 100644
 
4190
index 0000000..418724b
4102
4191
--- /dev/null
4103
4192
+++ b/gdk/mir/gdkmirwindowimpl.c
4104
4193
@@ -0,0 +1,1336 @@
5438
5527
+  impl_class->set_opaque_region = gdk_mir_window_impl_set_opaque_region;
5439
5528
+  impl_class->set_shadow_width = gdk_mir_window_impl_set_shadow_width;
5440
5529
+}
5441
 
Index: b/gtk/gtktooltip.c
5442
 
===================================================================
 
5530
diff --git a/gdk/wayland/gdkdisplay-wayland.c b/gdk/wayland/gdkdisplay-wayland.c
 
5531
index 5438a51..82c6ee1 100644
 
5532
--- a/gdk/wayland/gdkdisplay-wayland.c
 
5533
+++ b/gdk/wayland/gdkdisplay-wayland.c
 
5534
@@ -431,19 +431,6 @@ gdk_wayland_display_notify_startup_complete (GdkDisplay  *display,
 
5535
 {
 
5536
 }
 
5537
 
 
5538
-static void
 
5539
-gdk_wayland_display_event_data_copy (GdkDisplay     *display,
 
5540
-                                    const GdkEvent *src,
 
5541
-                                    GdkEvent       *dst)
 
5542
-{
 
5543
-}
 
5544
-
 
5545
-static void
 
5546
-gdk_wayland_display_event_data_free (GdkDisplay *display,
 
5547
-                                    GdkEvent   *event)
 
5548
-{
 
5549
-}
 
5550
-
 
5551
 static GdkKeymap *
 
5552
 _gdk_wayland_display_get_keymap (GdkDisplay *display)
 
5553
 {
 
5554
@@ -534,8 +521,6 @@ gdk_wayland_display_class_init (GdkWaylandDisplayClass * class)
 
5555
   display_class->after_process_all_updates = gdk_wayland_display_after_process_all_updates;
 
5556
   display_class->get_next_serial = gdk_wayland_display_get_next_serial;
 
5557
   display_class->notify_startup_complete = gdk_wayland_display_notify_startup_complete;
 
5558
-  display_class->event_data_copy = gdk_wayland_display_event_data_copy;
 
5559
-  display_class->event_data_free = gdk_wayland_display_event_data_free;
 
5560
   display_class->create_window_impl = _gdk_wayland_display_create_window_impl;
 
5561
   display_class->get_keymap = _gdk_wayland_display_get_keymap;
 
5562
   display_class->push_error_trap = gdk_wayland_display_push_error_trap;
 
5563
diff --git a/gdk/win32/gdkdisplay-win32.c b/gdk/win32/gdkdisplay-win32.c
 
5564
index 2d73c30..97d0e3e 100644
 
5565
--- a/gdk/win32/gdkdisplay-win32.c
 
5566
+++ b/gdk/win32/gdkdisplay-win32.c
 
5567
@@ -600,19 +600,6 @@ gdk_win32_display_notify_startup_complete (GdkDisplay  *display,
 
5568
   /* nothing */
 
5569
 }
 
5570
 static void
 
5571
-gdk_win32_display_event_data_copy (GdkDisplay    *display,
 
5572
-                                   const GdkEvent *src,
 
5573
-                                   GdkEvent       *dst)
 
5574
-{
 
5575
-  /* nothing */
 
5576
-}
 
5577
-static void
 
5578
-gdk_win32_display_event_data_free (GdkDisplay *display,
 
5579
-                                   GdkEvent *event)
 
5580
-{
 
5581
-  /* nothing */
 
5582
-}
 
5583
-static void
 
5584
 gdk_win32_display_push_error_trap (GdkDisplay *display)
 
5585
 {
 
5586
   /* nothing */
 
5587
@@ -665,8 +652,6 @@ gdk_win32_display_class_init (GdkWin32DisplayClass *klass)
 
5588
   display_class->after_process_all_updates = gdk_win32_display_after_process_all_updates;
 
5589
   display_class->get_next_serial = gdk_win32_display_get_next_serial;
 
5590
   display_class->notify_startup_complete = gdk_win32_display_notify_startup_complete;
 
5591
-  display_class->event_data_copy = gdk_win32_display_event_data_copy;
 
5592
-  display_class->event_data_free = gdk_win32_display_event_data_free;
 
5593
   display_class->create_window_impl = _gdk_win32_display_create_window_impl;
 
5594
 
 
5595
   display_class->get_keymap = _gdk_win32_display_get_keymap;
 
5596
diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c
 
5597
index 1db4742..ca9eb33 100644
 
5598
--- a/gdk/x11/gdkdisplay-x11.c
 
5599
+++ b/gdk/x11/gdkdisplay-x11.c
 
5600
@@ -2805,19 +2805,6 @@ gdk_x11_set_sm_client_id (const gchar *sm_client_id)
 
5601
   g_slist_free (displays);
 
5602
 }
 
5603
 
 
5604
-static void
 
5605
-gdk_x11_display_event_data_copy (GdkDisplay    *display,
 
5606
-                                const GdkEvent *src,
 
5607
-                                GdkEvent       *dst)
 
5608
-{
 
5609
-}
 
5610
-
 
5611
-static void
 
5612
-gdk_x11_display_event_data_free (GdkDisplay *display,
 
5613
-                                 GdkEvent *event)
 
5614
-{
 
5615
-}
 
5616
-
 
5617
 static gint
 
5618
 pop_error_trap (GdkDisplay *display,
 
5619
                 gboolean    ignored)
 
5620
@@ -2889,8 +2876,6 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class)
 
5621
   display_class->after_process_all_updates = _gdk_x11_display_after_process_all_updates;
 
5622
   display_class->get_next_serial = gdk_x11_display_get_next_serial;
 
5623
   display_class->notify_startup_complete = gdk_x11_display_notify_startup_complete;
 
5624
-  display_class->event_data_copy = gdk_x11_display_event_data_copy;
 
5625
-  display_class->event_data_free = gdk_x11_display_event_data_free;
 
5626
   display_class->create_window_impl = _gdk_x11_display_create_window_impl;
 
5627
   display_class->get_keymap = gdk_x11_display_get_keymap;
 
5628
   display_class->push_error_trap = gdk_x11_display_error_trap_push;
 
5629
diff --git a/gtk/gtktooltip.c b/gtk/gtktooltip.c
 
5630
index 103944f..cedddaa 100644
5443
5631
--- a/gtk/gtktooltip.c
5444
5632
+++ b/gtk/gtktooltip.c
5445
5633
@@ -39,6 +39,9 @@
5452
5640
 
5453
5641
 
5454
5642
 /**
5455
 
@@ -1162,6 +1165,19 @@
5456
 
         {
5457
 
           GtkWidget *toplevel;
5458
 
 
 
5643
@@ -1168,6 +1171,19 @@ found:
 
5644
                                           GTK_WINDOW (toplevel));
 
5645
         }
 
5646
 #endif
 
5647
+#ifdef GDK_WINDOWING_MIR
 
5648
+      /* Set the transient parent on the tooltip when running with the Mir
 
5649
+       * backend to allow correct positioning of the tooltip windows */
 
5650
+      if (GDK_IS_MIR_DISPLAY (display))
 
5651
+        {
 
5652
+          GtkWidget *toplevel;
 
5653
+
5459
5654
+          toplevel = gtk_widget_get_toplevel (tooltip->tooltip_widget);
5460
5655
+          if (GTK_IS_WINDOW (toplevel))
5461
5656
+            gtk_window_set_transient_for (GTK_WINDOW (tooltip->current_window),
5462
5657
+                                          GTK_WINDOW (toplevel));
5463
5658
+        }
5464
5659
+#endif
5465
 
+#ifdef GDK_WINDOWING_MIR
5466
 
+      /* Set the transient parent on the tooltip when running with the Mir
5467
 
+       * backend to allow correct positioning of the tooltip windows */
5468
 
+      if (GDK_IS_MIR_DISPLAY (display))
5469
 
+        {
5470
 
+          GtkWidget *toplevel;
5471
 
+
5472
 
           toplevel = gtk_widget_get_toplevel (tooltip->tooltip_widget);
5473
 
           if (GTK_IS_WINDOW (toplevel))
5474
 
             gtk_window_set_transient_for (GTK_WINDOW (tooltip->current_window),
 
5660
 
 
5661
       x -= border.left;
 
5662
       y -= border.top;
 
5663
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
 
5664
index e846c41..be5ae38 100644
 
5665
--- a/gtk/gtkwindow.c
 
5666
+++ b/gtk/gtkwindow.c
 
5667
@@ -79,6 +79,10 @@
 
5668
 #include "broadway/gdkbroadway.h"
 
5669
 #endif
 
5670
 
 
5671
+#ifdef GDK_WINDOWING_MIR
 
5672
+#include "mir/gdkmir.h"
 
5673
+#endif
 
5674
+
 
5675
 /**
 
5676
  * SECTION:gtkwindow
 
5677
  * @title: GtkWindow
 
5678
@@ -5683,6 +5687,11 @@ gtk_window_should_use_csd (GtkWindow *window)
 
5679
     return TRUE;
 
5680
 #endif
 
5681
 
 
5682
+#ifdef GDK_WINDOWING_MIR
 
5683
+  if (GDK_IS_MIR_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window))))
 
5684
+    return TRUE;
 
5685
+#endif
 
5686
+
 
5687
   csd_env = g_getenv ("GTK_CSD");
 
5688
 
 
5689
   return (g_strcmp0 (csd_env, "1") == 0);
 
5690
-- 
 
5691
2.1.3
 
5692