Compare commits
576 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5dbcf7dc0d | |||
| a938056810 | |||
| 0d9c9e5273 | |||
| c33d485d90 | |||
| 0253338bf5 | |||
| f5af2612f4 | |||
| 59c1547a48 | |||
| c63c932a05 | |||
| 7ba1368c40 | |||
| cf7f23f4dd | |||
| 353bfb0092 | |||
| f900bec4fa | |||
| e1182ec0e1 | |||
| d25e0657be | |||
| 60c7893c14 | |||
| e5ef7dc681 | |||
| f95a22a3ab | |||
| 11d7f6df7c | |||
| 50ff2a566a | |||
| bc656a3ca5 | |||
| a9814fea7d | |||
| 68ed166c60 | |||
| 2a1a483ede | |||
| 37b4b60e91 | |||
| 38cd2c1239 | |||
| 0bfc7db1fa | |||
| 8d886f3513 | |||
| 76fbcc2f26 | |||
| 203d8daff4 | |||
| ffd517cc3f | |||
| bfee2d3c61 | |||
| fd5729baef | |||
| 527df17ea3 | |||
| efc7dfd7a7 | |||
| 6be2073740 | |||
| f1b7005ede | |||
| 7cd177e0d7 | |||
| 3b9a2a4423 | |||
| ad214e1871 | |||
| 5d62c808b1 | |||
| b4c650ae85 | |||
| 948e077f1c | |||
| ec60bd889c | |||
| 527f4f44c1 | |||
| 94e675257a | |||
| 4f29b4a348 | |||
| 92a5eccc3d | |||
| cd798d5aed | |||
| 5744c757c2 | |||
| 13c2717d88 | |||
| 0db50dcea9 | |||
| 5e50abf411 | |||
| b3d02671ca | |||
| 5094900180 | |||
| 693db082a1 | |||
| 81cef0091e | |||
| 0f6c7682b3 | |||
| 1c46a02bcb | |||
| 199e35fa5c | |||
| 35eaca27e4 | |||
| de3ad3781c | |||
| f327ef3cf1 | |||
| 4ed47e757f | |||
| 7b3cda2cd5 | |||
| 4247e42411 | |||
| 820a8c2c7f | |||
| c7491fa144 | |||
| 4d524ab469 | |||
| 66d2c9e6fa | |||
| 87deb25dc3 | |||
| c59ef7bf2f | |||
| 37c923ad8a | |||
| 87c6ae1c18 | |||
| bec58dc39e | |||
| a71bc24184 | |||
| 2e314940af | |||
| 8afb4a69e8 | |||
| 53ae100e64 | |||
| 07841f269d | |||
| 973836d395 | |||
| 9f3deaa496 | |||
| 1261aa6fdf | |||
| 2bfb5ad812 | |||
| b6b00c31d7 | |||
| c580a9d01f | |||
| 894bd13240 | |||
| 48e605b7a4 | |||
| 9d4c78c2d0 | |||
| eade244cac | |||
| cca5cac965 | |||
| d40576fb3e | |||
| 4fe04ab54a | |||
| 399ab49fbb | |||
| 2ef86c94ed | |||
| 80af6ff130 | |||
| c1ecd1ef9d | |||
| f959b35064 | |||
| 452e303ec0 | |||
| 9db30bd0d7 | |||
| 21b545109c | |||
| b9613cc416 | |||
| d077f627ef | |||
| 0024358c91 | |||
| 099cde5f80 | |||
| ead35ee12f | |||
| ef1bc737b0 | |||
| 910f4f72ba | |||
| 8dfb0e728c | |||
| 37ad3628a0 | |||
| 8727c8fe24 | |||
| 2a6e1498ba | |||
| 61db7da2ef | |||
| 24391634b5 | |||
| 5f0a8cf136 | |||
| d65ba7cf97 | |||
| 8e5c7ac028 | |||
| c389511b86 | |||
| 92e3655ace | |||
| a7076d1c4c | |||
| fc0a222350 | |||
| 332ea5f8ec | |||
| 65d959bbc8 | |||
| 870461475a | |||
| 1f01b8d52a | |||
| 09f7c8511b | |||
| 19b34a44b2 | |||
| 6791c1413d | |||
| 77e99039fc | |||
| 67b739b58a | |||
| 6328cf5ee5 | |||
| c711906f8c | |||
| de50012371 | |||
| e364ae3ea8 | |||
| 9a29a2768b | |||
| ebdf5f581d | |||
| 7d8a3a52ce | |||
| 4f61fd09c5 | |||
| 9d1b8dfc61 | |||
| fa3e0be80c | |||
| 29dd395b7a | |||
| b3b4282beb | |||
| a5b1cdd0c1 | |||
| 9f04efd316 | |||
| a0d7b609e3 | |||
| b6112c6ed6 | |||
| aede5c65d3 | |||
| ac553d7e44 | |||
| dd01f2d407 | |||
| 2ba957364d | |||
| 25e01a3937 | |||
| 0e41ff015c | |||
| f8c3e48bd2 | |||
| 0b52b29dfc | |||
| f6ca908e03 | |||
| 7cdfee71da | |||
| 81de33e906 | |||
| 96a485d8b2 | |||
| 5ebb713df5 | |||
| 0d12cc3354 | |||
| d229ea3de1 | |||
| e56bb49407 | |||
| 13d091f700 | |||
| 113c88c2cf | |||
| 85bfe9ee38 | |||
| d5ff9af94e | |||
| f2434e7cea | |||
| 957135a57c | |||
| 9e2b796e77 | |||
| 5c53e873b1 | |||
| f4c30060be | |||
| 79a3a7800e | |||
| eef5f27fb4 | |||
| e0f4bf5d35 | |||
| b89939f5a4 | |||
| 7568d17a15 | |||
| cacc63ea4b | |||
| 1bc2913f52 | |||
| 4323dd34f3 | |||
| dba8eba6db | |||
| 5ffd54aca8 | |||
| 7ee7019ca7 | |||
| 479d64e89a | |||
| ca385af3c4 | |||
| 71afd762ed | |||
| 73704d98cc | |||
| bab20f1d10 | |||
| 7ea33d82ed | |||
| d3abd83330 | |||
| 7465601c1e | |||
| 3de78decd4 | |||
| aa5dc38b0d | |||
| 1f585151fd | |||
| 8606e57910 | |||
| e2e198aae4 | |||
| b6fda5dc0a | |||
| c265b58181 | |||
| d70d5ea6ec | |||
| 4fe1b9589e | |||
| dfedda3dee | |||
| 42a231a61c | |||
| 4e8aea012e | |||
| 5ec9b330b3 | |||
| e5d3c8dbae | |||
| e3ef2c48d5 | |||
| a4a3736461 | |||
| b39601bcc1 | |||
| 844f60f1f2 | |||
| 2b998aaad7 | |||
| ee3799f151 | |||
| f97e2599e3 | |||
| 739e0c17a1 | |||
| 5b360a479d | |||
| a24dba28ae | |||
| 2cff7a68f2 | |||
| bd456ac67b | |||
| 85d971b40b | |||
| 828faaba64 | |||
| 0f2ce2bb1c | |||
| cc872f3c08 | |||
| 97c1782246 | |||
| 33ac663b13 | |||
| 50c6a11b05 | |||
| 84380b345d | |||
| 0a845fb563 | |||
| af3789bb87 | |||
| 91af42263b | |||
| 3eec0876ab | |||
| aa6e0ad3f2 | |||
| c925a840b2 | |||
| e148876dd4 | |||
| 7d18398eeb | |||
| 908e046cbd | |||
| 43e2ee31bc | |||
| 40f9a0fe69 | |||
| 8c0c0f9c07 | |||
| b9c565b06c | |||
| ee81f3ee2f | |||
| 2c5e25a5c7 | |||
| 4cd408e8d0 | |||
| 9e5914ebde | |||
| d0e91ec088 | |||
| 8894e46183 | |||
| c631656f0c | |||
| 826633b5b7 | |||
| cc2f189144 | |||
| b350779a6f | |||
| a953e37735 | |||
| e39b8611bd | |||
| 32de7edf1d | |||
| ffaaa1e66e | |||
| a0a78a8973 | |||
| 4f24c8569c | |||
| fc6f41c751 | |||
| 63f2fc752a | |||
| b6dbfc791f | |||
| ea5f16fd2d | |||
| d634403d91 | |||
| 2936d7bae8 | |||
| 56d3e42a00 | |||
| a840a6d597 | |||
| bb7d7851ac | |||
| ebcad63e31 | |||
| 811c1c9484 | |||
| 4483636016 | |||
| cd20ae8fe1 | |||
| e07ff714b9 | |||
| bef44ab294 | |||
| 6866d1c06e | |||
| 299600a7d4 | |||
| f706891dd3 | |||
| ab7e901cfd | |||
| 4fa74e68e9 | |||
| b5dfe9b833 | |||
| a31123e9f0 | |||
| a4587ef4a0 | |||
| 4d631a9144 | |||
| 3e3f17576e | |||
| 6cc2615b63 | |||
| 3ff894c201 | |||
| 58d506fb11 | |||
| 85ab8ad001 | |||
| 1f2e21ab9a | |||
| 0721d964e4 | |||
| dd0e5cfce6 | |||
| 8fea3b02c9 | |||
| e19818359a | |||
| 690e015ed1 | |||
| 0912a6c2f5 | |||
| 195397e87a | |||
| 798a288405 | |||
| d3d9f52365 | |||
| ab2d236d3d | |||
| 5dd2087d19 | |||
| 08974a1e9a | |||
| e422ccefe1 | |||
| 624fb8b360 | |||
| 8ec2362d81 | |||
| 5cffbed165 | |||
| a58d8bdcbc | |||
| c4eb14eb01 | |||
| 854c7d1f0f | |||
| cab40f0743 | |||
| b4d49c36ce | |||
| 20e46ce8ae | |||
| 62ec4a2415 | |||
| 4e950da4d1 | |||
| 0dffc8c9d3 | |||
| b3619f9050 | |||
| 085edf0212 | |||
| 2c2fd5c8c5 | |||
| 3058c3e6a9 | |||
| 37eb5c08a4 | |||
| 3869bdbc2b | |||
| 0d8444d067 | |||
| 85a6f3c13e | |||
| 339cb1fe6b | |||
| 93d80380ee | |||
| d974610741 | |||
| efc8dc63e3 | |||
| 1760ada1ff | |||
| e3ddbc544c | |||
| 9848fe006e | |||
| 5b0208f890 | |||
| 5ee39befb8 | |||
| 0f4663728e | |||
| 9753bea6a4 | |||
| 270e900f55 | |||
| 6f340d4384 | |||
| c3b0b8a360 | |||
| bb5b711d4b | |||
| 71b31c84c0 | |||
| 657a43e54e | |||
| 46e834cf3e | |||
| ed00d86496 | |||
| 6852a1eef9 | |||
| b7d001e613 | |||
| a648afae12 | |||
| 517cea36ed | |||
| d717afd4d4 | |||
| c72d094ae0 | |||
| aefa1ba611 | |||
| db04c1eda7 | |||
| 101df329ae | |||
| aedd193c69 | |||
| bcb28adba3 | |||
| 97dbef451e | |||
| e25ea62f22 | |||
| 49798754e6 | |||
| 2eb7d7476b | |||
| 76619cf1ae | |||
| ed8641ff26 | |||
| 8db30aa9a0 | |||
| e28b3d1296 | |||
| 6efbf329c3 | |||
| 953aa45c04 | |||
| 305b34aa15 | |||
| 3450f53907 | |||
| 2258fe576f | |||
| bf65b06781 | |||
| 91ec104dd3 | |||
| f1248ccea4 | |||
| 2de0f06af9 | |||
| 0ba03aac16 | |||
| 2eb6599b29 | |||
| aa67ad0011 | |||
| caa6fb0732 | |||
| 2b20bd54c5 | |||
| bd80b1d037 | |||
| 9269525f07 | |||
| 3011820485 | |||
| 7c7fde136e | |||
| 64c5b97be8 | |||
| f55e3f7eda | |||
| 4305aa1def | |||
| 1e112ca75e | |||
| 9d81f3f6f1 | |||
| e440050134 | |||
| f1b7560938 | |||
| 8917ee5373 | |||
| 9f738da11b | |||
| a22e07f374 | |||
| f194b9608a | |||
| e2bfe9e95a | |||
| 431089f769 | |||
| 78309d8b00 | |||
| d8a3a4e7aa | |||
| 6a768ba218 | |||
| e39ca899ad | |||
| f5e77d0c67 | |||
| 8a8518ed40 | |||
| c6a7ceedc9 | |||
| b2dd9cbc59 | |||
| 5b0a26f8a3 | |||
| 4959fe3267 | |||
| 71b79f3329 | |||
| 57057f73e4 | |||
| 6f90b3ca31 | |||
| 34be4de1ad | |||
| a8b5c04694 | |||
| bacc9d4edd | |||
| 7d98c7f1ae | |||
| 506d5b5b48 | |||
| de16a4e07c | |||
| b5e1fd5b7f | |||
| 99d7648517 | |||
| 48b30e8e91 | |||
| 203742b188 | |||
| d1a85fc9e4 | |||
| e0d9250a07 | |||
| 7cf3eec85b | |||
| 5a0a870d89 | |||
| defd3146eb | |||
| 67a54bf4ef | |||
| 6cf7c03334 | |||
| 1f1c7547da | |||
| f703ea6599 | |||
| 26d8a56506 | |||
| 1571d2872f | |||
| 01136618b8 | |||
| d3bf602c60 | |||
| 371f501632 | |||
| 408920d438 | |||
| 244d9ffeee | |||
| ed574408f2 | |||
| 182f9a7f39 | |||
| 2720d97db3 | |||
| acd63a6019 | |||
| 7b9844288a | |||
| dd3f2ec987 | |||
| f713bcd742 | |||
| a4e86341e4 | |||
| 541926089a | |||
| 3392d53f61 | |||
| 01f7711307 | |||
| 601fe8f502 | |||
| 55d496e917 | |||
| 983de6f4a0 | |||
| 24dde6346a | |||
| 20ce0588b1 | |||
| 950b1fb65c | |||
| c075c14bf4 | |||
| 72615a1b16 | |||
| 385fda80b4 | |||
| efff9c8edb | |||
| 26450a661e | |||
| b65f400d56 | |||
| 92a136ffde | |||
| 1a2cdad220 | |||
| a2e581d54c | |||
| 3306ce6819 | |||
| f6d9f9f93d | |||
| 310781ecdd | |||
| d1c81446d7 | |||
| 1dfbae1aa4 | |||
| f254a4b67f | |||
| e9aa33527f | |||
| 2dc63dad34 | |||
| 05717fe2df | |||
| 95c7a539bf | |||
| 55bd936b73 | |||
| b65668a251 | |||
| 060948d806 | |||
| 5dd78f74e0 | |||
| 50c269f846 | |||
| a863b06576 | |||
| 9727a4c4bf | |||
| 4d59233ba9 | |||
| 364d1a574b | |||
| ffa98cbfa5 | |||
| ecf5c5ff6e | |||
| b5d3bebae3 | |||
| ea91670c11 | |||
| 8422633311 | |||
| b84797a2c6 | |||
| a0379d5424 | |||
| d0e30994d0 | |||
| 45fa145034 | |||
| eec75ee9d6 | |||
| 65aa367029 | |||
| 019078364e | |||
| eb0b096963 | |||
| 3bbd8bd1c3 | |||
| 4447cf2419 | |||
| f838743bc0 | |||
| 9fe40f9a46 | |||
| 25483304cd | |||
| c860492359 | |||
| 00b39e4a82 | |||
| a397324d19 | |||
| 73b21d680c | |||
| 944ef8bb0b | |||
| d0779db1e1 | |||
| 027b02a371 | |||
| c888a927e7 | |||
| 342b620223 | |||
| 9d3e9c9375 | |||
| a9a1c00cc9 | |||
| a712d1fd76 | |||
| ce2c89c6ed | |||
| c264cd6785 | |||
| af8c2d2f7b | |||
| 3c217e6954 | |||
| 0731c50262 | |||
| dd3f4f2904 | |||
| c3686838ea | |||
| 9cc3e63045 | |||
| d29d54a97b | |||
| 9341f64c19 | |||
| f9b6c07c8a | |||
| 831509f6aa | |||
| 1dbcce785e | |||
| 569be9f111 | |||
| 983c61826b | |||
| 0cd4e7ec43 | |||
| 11ee4b40af | |||
| 8147f12eca | |||
| 14dde08e33 | |||
| cfaa421433 | |||
| 73bf16b3b0 | |||
| f2b848a531 | |||
| 6f6f13a7d8 | |||
| af5792f141 | |||
| 364732f2e6 | |||
| d4699cf51d | |||
| 4398e12469 | |||
| ab001d01c8 | |||
| d8e41e1308 | |||
| 7ab250c10c | |||
| c05dc28952 | |||
| 6f7029bb67 | |||
| 7aa2bfdc77 | |||
| bddc524cd8 | |||
| 74e02842bb | |||
| b2d379a340 | |||
| 70f577251f | |||
| 5548665351 | |||
| a41f02f9b1 | |||
| 138187755f | |||
| 4535d09bea | |||
| 48a2477f2d | |||
| 22b0ed6807 | |||
| f45e26885c | |||
| b6bf982289 | |||
| 3df565cbf7 | |||
| 8bd98c08aa | |||
| 1e51398e9a | |||
| d3475f7a72 | |||
| c929e98fba | |||
| f10c0da36c | |||
| 59d02afec0 | |||
| 9601479f0c | |||
| 105f1c9fd3 | |||
| 18cae47e17 | |||
| e636c316a6 | |||
| 24230ca783 | |||
| 2dfca143bb | |||
| b23eabbd64 | |||
| d8856f1b61 | |||
| dad1931b5f | |||
| 263cbd90a0 | |||
| ecb0e777fa | |||
| 35b088459e | |||
| 1ae98e72f7 | |||
| 3c253c46a5 | |||
| 896f911ea1 | |||
| 47237ddd94 | |||
| 2f0d4b6868 | |||
| d930ea7c1f | |||
| 571704824f | |||
| 2dad7c1319 | |||
| 5a561a8ddb | |||
| cc2224cc62 | |||
| 598e17018c | |||
| 40190c295c | |||
| 506fe61938 | |||
| 83b8bcb63a |
@@ -1,3 +1,96 @@
|
||||
Overview of Changes in GTK+ 3.19.2
|
||||
==================================
|
||||
* Support for native file chooser on Win32 when using the new
|
||||
GtkFileChooserNative API, and when using GtkFileChooserButton.
|
||||
|
||||
* The GtkFileChooser interface prerequisite was changed from GtkWidget
|
||||
to GObject to allow non-widget filechooser implementations.
|
||||
|
||||
Overview of Changes in GTK+ 3.19.1
|
||||
==================================
|
||||
|
||||
* Support for help overlays to document keyboard shortcuts and gestures
|
||||
has been added
|
||||
|
||||
* GdkAppLaunchContext is now setting the DISPLAY environment variable
|
||||
for X11
|
||||
|
||||
* Support for GL legacy profiles has been added back
|
||||
|
||||
* GTK+ now loads compose tables in the format used by XLib from
|
||||
~/.config/gtk-3.0/Compose, ~/.XCompose and the X11 locale information
|
||||
|
||||
* GtkBuilder can now create GFile objects, for use in e.g. GFileIcons.
|
||||
|
||||
* New APIs:
|
||||
- GtkShortcutsWindow
|
||||
- gtk_text_tag_changed
|
||||
- gtk_settings_reset_property
|
||||
- gdk_rectangle_equal
|
||||
- gdk_gl_context_is_legacy
|
||||
|
||||
* A new commandline utility, gtk-query-settings, to query GTK+ settings,
|
||||
has been added
|
||||
|
||||
* Theming: Element names are now supported.
|
||||
A number of widgets have already been changed to use element names for
|
||||
the widget itself and its various subelements. This effort will continue
|
||||
in next development releases.
|
||||
This change will require adjustments in themes and custom css - as part of
|
||||
this transition, the element names and style classes in use are documented
|
||||
and will be stable going forward.
|
||||
|
||||
* Debugging: GtkInspector can now edit string-array-valued properties
|
||||
|
||||
* Wayland:
|
||||
- Fix transparent terminals
|
||||
- Fix treeview search popups
|
||||
- Fix CSD window resizing / moving
|
||||
|
||||
* Bugs fixed:
|
||||
721120 GtkIMContextSimple needs locale compose tables similar with X11.
|
||||
735341 Fix/improve gtk_text_buffer_get_iter_at_*() functions
|
||||
753371 Bad focus order in GtkFlowBox
|
||||
753992 im-quartz discard_preedit segmentation fault
|
||||
754983 Wayland: g_desktop_app_info_launch_uris_with_spawn() forces DISPLAY...
|
||||
755008 API to reset a gtksettings property
|
||||
755413 Bug in _gtk_text_btree_get_iter_at_last_toggle()
|
||||
755416 Be able to subclass GtkTextTag cleanly
|
||||
755654 mmc/sd drive does not appear in Nautilus
|
||||
755791 GtkSwitch: unclip css box-shadow on the slider
|
||||
755927 Occasional "stuck key" after closing window using keyboard shortcut...
|
||||
755988 gtk printer dialog won't print jobs with names exceeding 255 charac...
|
||||
756042 GtkAssistant: Segfault after g_object_run_dispose(page)
|
||||
756142 Bring back support for legacy OpenGL contexts
|
||||
756160 Crash/segfault when dragging tabs (after 2nd/3rd/4th+ drag)
|
||||
756174 Add a tool to inspect all xsettings from the command line
|
||||
756195 GtkColorChooser: Plus/checkmark icons are blurry in hidpi
|
||||
756338 applications segfaults on 3.18.1 when using external themes
|
||||
756428 Add a help overlay widget
|
||||
756439 Regression: Critical warning "g_app_launch_context_get_display: ass...
|
||||
756449 GtkTextHandle artifacts under Wayland
|
||||
756496 wayland: Make it possible to use a window type hint to map as a sub...
|
||||
756505 Entering a dot removes all other characters from input
|
||||
756568 Some improvements to gtkplacesview
|
||||
756589 Improve the heuristics for external drives
|
||||
756618 GtkWindow CSD: gtk_window_resize() also includes client side decora...
|
||||
756625 segfault in captured_event_cb
|
||||
756751 Keypad decimal point patch prevents entry of comma in german keypad...
|
||||
756770 GTK+ 3.18.2 doesn't compile on OS X 10.6 (but so close!)
|
||||
756852 GtkInspector segfaults when you respond to a GtkFileChooserDialog
|
||||
756881 Guard against selection requestor disappearing
|
||||
756886 The GtkWindow patch here is necessary to make transparent terminals...
|
||||
756780 wayland: Fix GtkTreeView's search window
|
||||
757147 gdk_pixbuf_get_from_window: honor device scale
|
||||
|
||||
* Translation updates:
|
||||
Basque
|
||||
Czech
|
||||
German
|
||||
Norwegian bokmål
|
||||
Slovak
|
||||
|
||||
|
||||
Overview of Changes in GTK+ 3.18.1
|
||||
==================================
|
||||
|
||||
|
||||
@@ -72,6 +72,15 @@ and attach the patch to that bug report.
|
||||
Patches should be in unified diff form. (The -up option to GNU diff)
|
||||
Even better are git-formatted patches. (Use git format-patch)
|
||||
|
||||
Release notes for 3.20
|
||||
======================
|
||||
|
||||
* The GtkFileChooser interface pre-requisite changed from GtkWidget
|
||||
to GObject, allowing non-widget implementations of this interface.
|
||||
This is a minor change in ABI, as apps are no longer guaranteed
|
||||
that a GtkFileChooser interface also supports all GtkWidget methods.
|
||||
However, all previously existing objects still derive from GtkWidget,
|
||||
so no existing code should break.
|
||||
|
||||
Release notes for 3.18
|
||||
======================
|
||||
|
||||
@@ -111,6 +111,7 @@
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -159,6 +160,7 @@
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@@ -88,14 +88,41 @@
|
||||
<Link>
|
||||
<AdditionalDependencies>atk-1.0.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<ModuleDefinitionFile>..\..\..\libgail-util\gailutil.def</ModuleDefinitionFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>atk-1.0.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ModuleDefinitionFile>..\..\..\libgail-util\gailutil.def</ModuleDefinitionFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
@@ -113,39 +140,13 @@
|
||||
<AdditionalDependencies>atk-1.0.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ModuleDefinitionFile>..\..\..\libgail-util\gailutil.def</ModuleDefinitionFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>atk-1.0.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<ModuleDefinitionFile>..\..\..\libgail-util\gailutil.def</ModuleDefinitionFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
@@ -160,12 +161,13 @@
|
||||
<AdditionalDependencies>atk-1.0.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ModuleDefinitionFile>..\..\..\libgail-util\gailutil.def</ModuleDefinitionFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@@ -169,10 +169,10 @@
|
||||
<Link>
|
||||
<AdditionalDependencies>imm32.lib;winmm.lib;ws2_32.lib;dwmapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -189,12 +189,13 @@
|
||||
<Link>
|
||||
<AdditionalDependencies>imm32.lib;winmm.lib;dwmapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -211,12 +212,13 @@
|
||||
<Link>
|
||||
<AdditionalDependencies>imm32.lib;winmm.lib;ws2_32.lib;dwmapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -236,10 +238,10 @@
|
||||
<Link>
|
||||
<AdditionalDependencies>imm32.lib;winmm.lib;dwmapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -259,10 +261,10 @@
|
||||
<Link>
|
||||
<AdditionalDependencies>imm32.lib;winmm.lib;ws2_32.lib;dwmapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -279,12 +281,13 @@
|
||||
<Link>
|
||||
<AdditionalDependencies>imm32.lib;winmm.lib;dwmapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -301,12 +304,13 @@
|
||||
<Link>
|
||||
<AdditionalDependencies>imm32.lib;winmm.lib;ws2_32.lib;dwmapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@@ -88,10 +88,10 @@
|
||||
<Link>
|
||||
<AdditionalDependencies>atk-1.0.lib;pangowin32-1.0.lib;imm32.lib;winspool.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -108,12 +108,13 @@
|
||||
<Link>
|
||||
<AdditionalDependencies>atk-1.0.lib;pangowin32-1.0.lib;imm32.lib;winspool.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -133,10 +134,10 @@
|
||||
<Link>
|
||||
<AdditionalDependencies>atk-1.0.lib;pangowin32-1.0.lib;imm32.lib;winspool.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -153,12 +154,13 @@
|
||||
<Link>
|
||||
<AdditionalDependencies>atk-1.0.lib;pangowin32-1.0.lib;imm32.lib;winspool.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@@ -111,6 +111,7 @@
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -159,6 +160,7 @@
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@@ -107,6 +107,7 @@
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>false</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -151,6 +152,7 @@
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>false</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@@ -96,6 +96,31 @@
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gtk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>$(GtkPrefixDefine);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<CompileAs>CompileAsC</CompileAs>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<OptimizeReferences>false</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
</DataExecutionPrevention>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
@@ -120,30 +145,6 @@
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gtk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>$(GtkPrefixDefine);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<CompileAs>CompileAsC</CompileAs>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<OptimizeReferences>false</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..\..\..\gdk;..\..\..\gtk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
@@ -165,6 +166,7 @@
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
</DataExecutionPrevention>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@@ -109,6 +109,7 @@
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>false</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -155,6 +156,7 @@
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>false</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@@ -109,7 +109,7 @@ copy ..\..\..\gtk\org.gtk.Settings.ColorChooser.gschema.xml $(CopyDir)\share\gli
|
||||
copy ..\..\..\gtk\org.gtk.Settings.Debug.gschema.xml $(CopyDir)\share\glib-2.0\schemas
|
||||
copy ..\..\..\demos\gtk-demo\org.gtk.Demo.gschema.xml $(CopyDir)\share\glib-2.0\schemas
|
||||
echo "Compiling gsettings XML Files..."
|
||||
$(CopyDir)\bin\glib-compile-schemas.exe $(CopyDir)\share\glib-2.0\schemas
|
||||
$(GlibEtcInstallRoot)\bin\glib-compile-schemas.exe $(CopyDir)\share\glib-2.0\schemas
|
||||
</GtkDoInstall>
|
||||
<GtkDoInstallBroadwayHeaders>
|
||||
copy ..\..\..\gdk\broadway\gdkbroadway.h $(CopyDir)\include\gtk-$(ApiVersion)\gdk
|
||||
|
||||
@@ -112,7 +112,7 @@ copy ..\..\..\gtk\org.gtk.Settings.Debug.gschema.xml $(CopyDir)\share\glib-2.0\s
|
||||
copy ..\..\..\demos\gtk-demo\org.gtk.Demo.gschema.xml $(CopyDir)\share\glib-2.0\schemas

|
||||
|
||||
echo "Compiling gsettings XML Files..."

|
||||
$(CopyDir)\bin\glib-compile-schemas.exe $(CopyDir)\share\glib-2.0\schemas

|
||||
$(GlibEtcInstallRoot)\bin\glib-compile-schemas.exe $(CopyDir)\share\glib-2.0\schemas

|
||||
"
|
||||
/>
|
||||
<UserMacro
|
||||
|
||||
+13
-3
@@ -9,9 +9,9 @@
|
||||
# set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0.
|
||||
|
||||
m4_define([gtk_major_version], [3])
|
||||
m4_define([gtk_minor_version], [18])
|
||||
m4_define([gtk_minor_version], [19])
|
||||
m4_define([gtk_micro_version], [1])
|
||||
m4_define([gtk_interface_age], [1])
|
||||
m4_define([gtk_interface_age], [0])
|
||||
m4_define([gtk_binary_age],
|
||||
[m4_eval(100 * gtk_minor_version + gtk_micro_version)])
|
||||
m4_define([gtk_version],
|
||||
@@ -61,6 +61,7 @@ m4_define([gdk_pixbuf_required_version], [2.30.0])
|
||||
m4_define([introspection_required_version], [1.39.0])
|
||||
m4_define([wayland_required_version], [1.5.91])
|
||||
m4_define([mirclient_required_version], [0.11.0])
|
||||
m4_define([mircookie_required_version], [0.17.0])
|
||||
m4_define([epoxy_required_version], [1.0])
|
||||
GLIB_REQUIRED_VERSION=glib_required_version
|
||||
PANGO_REQUIRED_VERSION=pango_required_version
|
||||
@@ -457,7 +458,7 @@ else
|
||||
AM_CONDITIONAL(USE_WAYLAND, false)
|
||||
fi
|
||||
|
||||
MIR_DEPENDENCIES="mirclient >= mirclient_required_version"
|
||||
MIR_DEPENDENCIES="mirclient >= mirclient_required_version mircookie >= mircookie_required_version"
|
||||
if test "$enable_mir_backend" = "maybe" ; then
|
||||
PKG_CHECK_EXISTS($MIR_DEPENDENCIES, [have_mir_deps=yes], [have_mir_deps=no])
|
||||
AC_MSG_CHECKING([for MIR_DEPENDENCIES])
|
||||
@@ -1375,6 +1376,14 @@ if test x"$os_win32" = xyes; then
|
||||
GTK_EXTRA_CFLAGS="$msnative_struct"
|
||||
fi
|
||||
|
||||
if $PKG_CONFIG --exists x11; then
|
||||
X11_PREFIX="`$PKG_CONFIG --variable=prefix x11`"
|
||||
elif test x"$prefix" != xNONE; then
|
||||
X11_PREFIX="$prefix"
|
||||
else
|
||||
X11_PREFIX="$ac_default_prefix"
|
||||
fi
|
||||
|
||||
GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
|
||||
ATK_PREFIX="`$PKG_CONFIG --variable=prefix atk`"
|
||||
PANGO_PREFIX="`$PKG_CONFIG --variable=prefix pango`"
|
||||
@@ -1387,6 +1396,7 @@ AC_SUBST(GTK_EXTRA_CFLAGS)
|
||||
AC_SUBST(GTK_DEP_LIBS)
|
||||
AC_SUBST(GTK_DEP_CFLAGS)
|
||||
|
||||
AC_SUBST(X11_PREFIX)
|
||||
AC_SUBST(GLIB_PREFIX)
|
||||
AC_SUBST(ATK_PREFIX)
|
||||
AC_SUBST(PANGO_PREFIX)
|
||||
|
||||
@@ -56,6 +56,7 @@ demos_base = \
|
||||
scale.c \
|
||||
search_entry.c \
|
||||
search_entry2.c \
|
||||
shortcuts.c \
|
||||
sidebar.c \
|
||||
sizegroup.c \
|
||||
spinbutton.c \
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
|
||||
#ifdef STANDALONE
|
||||
|
||||
static void create_window (GApplication *app, const char *contents);
|
||||
|
||||
static void
|
||||
show_action_dialog (GSimpleAction *action)
|
||||
{
|
||||
@@ -65,6 +67,79 @@ activate_action (GSimpleAction *action,
|
||||
show_action_dialog (action);
|
||||
}
|
||||
|
||||
static void
|
||||
activate_new (GSimpleAction *action,
|
||||
GVariant *parameter,
|
||||
gpointer user_data)
|
||||
{
|
||||
GApplication *app = user_data;
|
||||
|
||||
create_window (app, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
open_response_cb (GtkNativeDialog *dialog,
|
||||
gint response_id,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkFileChooserNative *native = user_data;
|
||||
GApplication *app = g_object_get_data (G_OBJECT (native), "app");
|
||||
GtkWidget *message_dialog;
|
||||
GFile *file;
|
||||
char *contents;
|
||||
GError *error = NULL;
|
||||
|
||||
if (response_id == GTK_RESPONSE_ACCEPT)
|
||||
{
|
||||
file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (native));
|
||||
|
||||
if (g_file_load_contents (file, NULL, &contents, NULL, NULL, &error))
|
||||
{
|
||||
create_window (app, contents);
|
||||
g_free (contents);
|
||||
}
|
||||
else
|
||||
{
|
||||
message_dialog = gtk_message_dialog_new (NULL,
|
||||
GTK_DIALOG_DESTROY_WITH_PARENT,
|
||||
GTK_MESSAGE_ERROR,
|
||||
GTK_BUTTONS_CLOSE,
|
||||
"Error loading file: \"%s\"",
|
||||
error->message);
|
||||
g_signal_connect (message_dialog, "response",
|
||||
G_CALLBACK (gtk_widget_destroy), NULL);
|
||||
gtk_widget_show (message_dialog);
|
||||
g_error_free (error);
|
||||
}
|
||||
}
|
||||
|
||||
g_object_unref (native);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
activate_open (GSimpleAction *action,
|
||||
GVariant *parameter,
|
||||
gpointer user_data)
|
||||
{
|
||||
GApplication *app = user_data;
|
||||
GtkFileChooserNative *native;
|
||||
|
||||
native = gtk_file_chooser_native_new ("Open File",
|
||||
NULL,
|
||||
GTK_FILE_CHOOSER_ACTION_OPEN,
|
||||
"_Open",
|
||||
"_Cancel");
|
||||
|
||||
g_object_set_data_full (G_OBJECT (native), "app", g_object_ref (app), g_object_unref);
|
||||
g_signal_connect (native,
|
||||
"response",
|
||||
G_CALLBACK (open_response_cb),
|
||||
native);
|
||||
|
||||
gtk_native_dialog_show (GTK_NATIVE_DIALOG (native));
|
||||
}
|
||||
|
||||
static void
|
||||
activate_toggle (GSimpleAction *action,
|
||||
GVariant *parameter,
|
||||
@@ -226,8 +301,8 @@ change_radio_state (GSimpleAction *action,
|
||||
}
|
||||
|
||||
static GActionEntry app_entries[] = {
|
||||
{ "new", activate_action, NULL, NULL, NULL },
|
||||
{ "open", activate_action, NULL, NULL, NULL },
|
||||
{ "new", activate_new, NULL, NULL, NULL },
|
||||
{ "open", activate_open, NULL, NULL, NULL },
|
||||
{ "save", activate_action, NULL, NULL, NULL },
|
||||
{ "save-as", activate_action, NULL, NULL, NULL },
|
||||
{ "quit", activate_quit, NULL, NULL, NULL },
|
||||
@@ -269,7 +344,8 @@ startup (GApplication *app)
|
||||
}
|
||||
|
||||
static void
|
||||
activate (GApplication *app)
|
||||
create_window (GApplication *app,
|
||||
const char *content_text)
|
||||
{
|
||||
GtkBuilder *builder;
|
||||
GtkWidget *window;
|
||||
@@ -317,6 +393,8 @@ activate (GApplication *app)
|
||||
|
||||
/* Show text widget info in the statusbar */
|
||||
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (contents));
|
||||
if (content_text)
|
||||
gtk_text_buffer_set_text (buffer, content_text, -1);
|
||||
g_signal_connect_object (buffer, "changed",
|
||||
G_CALLBACK (update_statusbar), status, 0);
|
||||
g_signal_connect_object (buffer, "mark-set",
|
||||
@@ -329,6 +407,12 @@ activate (GApplication *app)
|
||||
g_object_unref (builder);
|
||||
}
|
||||
|
||||
static void
|
||||
activate (GApplication *app)
|
||||
{
|
||||
create_window (app, NULL);
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
|
||||
@@ -171,7 +171,7 @@ query_change_display (ChangeDisplayInfo *info)
|
||||
"to move to the new screen");
|
||||
|
||||
if (toplevel)
|
||||
gtk_window_set_screen (GTK_WINDOW (toplevel), gdk_display_get_screen (info->current_display, 0));
|
||||
gtk_window_set_screen (GTK_WINDOW (toplevel), gdk_display_get_default_screen (info->current_display));
|
||||
else
|
||||
gdk_display_beep (gdk_screen_get_display (screen));
|
||||
}
|
||||
|
||||
@@ -91,6 +91,12 @@
|
||||
<gresource prefix="/stack">
|
||||
<file>stack.ui</file>
|
||||
</gresource>
|
||||
<gresource prefix="/shortcuts">
|
||||
<file>shortcuts.ui</file>
|
||||
<file>shortcuts-builder.ui</file>
|
||||
<file>shortcuts-gedit.ui</file>
|
||||
<file>shortcuts-clocks.ui</file>
|
||||
</gresource>
|
||||
<gresource prefix="/revealer">
|
||||
<file>revealer.ui</file>
|
||||
</gresource>
|
||||
@@ -163,6 +169,7 @@
|
||||
<file>scale.c</file>
|
||||
<file>search_entry.c</file>
|
||||
<file>search_entry2.c</file>
|
||||
<file>shortcuts.c</file>
|
||||
<file>sizegroup.c</file>
|
||||
<file>sidebar.c</file>
|
||||
<file>stack.c</file>
|
||||
@@ -213,4 +220,8 @@
|
||||
<gresource prefix="/modelbutton">
|
||||
<file>modelbutton.ui</file>
|
||||
</gresource>
|
||||
<gresource prefix="/icons">
|
||||
<file>gesture-two-finger-swipe-right.svg</file>
|
||||
<file>gesture-two-finger-swipe-left.svg</file>
|
||||
</gresource>
|
||||
</gresources>
|
||||
|
||||
@@ -0,0 +1,173 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="80"
|
||||
height="54"
|
||||
viewBox="0 0 80.000001 54"
|
||||
id="svg6660"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="two-finger-swipe-left.svg"
|
||||
inkscape:export-filename="/home/aday/Scratch/two-finger-swipe-left.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
id="defs6662" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="-26.486277"
|
||||
inkscape:cy="27.97415"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:showpageshadow="false"
|
||||
units="px"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata6665">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(1077.1429,-651.07582)">
|
||||
<g
|
||||
style="display:inline"
|
||||
transform="translate(-753.14285,209.07579)"
|
||||
id="g6613">
|
||||
<g
|
||||
id="g6615">
|
||||
<rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect6617"
|
||||
width="7.99999"
|
||||
height="24.999994"
|
||||
x="-288"
|
||||
y="471"
|
||||
ry="4.1854858"
|
||||
rx="3.999995" />
|
||||
<rect
|
||||
rx="3.999995"
|
||||
ry="4.1854858"
|
||||
y="452.00003"
|
||||
x="-279"
|
||||
height="43.999989"
|
||||
width="7.99999"
|
||||
id="rect6619"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||
<rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect6621"
|
||||
width="7.99999"
|
||||
height="49.000015"
|
||||
x="-270"
|
||||
y="447"
|
||||
ry="4.1854858"
|
||||
rx="3.999995" />
|
||||
<rect
|
||||
rx="3.999995"
|
||||
ry="4.1854858"
|
||||
y="460"
|
||||
x="-261"
|
||||
height="36.000011"
|
||||
width="7.99999"
|
||||
id="rect6623"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||
<rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect6625"
|
||||
width="7.99999"
|
||||
height="30.000006"
|
||||
x="-252"
|
||||
y="466"
|
||||
ry="4.1854858"
|
||||
rx="3.999995" />
|
||||
<rect
|
||||
y="483"
|
||||
x="-288"
|
||||
height="12.99999"
|
||||
width="28.999994"
|
||||
id="rect6627"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||
<rect
|
||||
rx="3.999995"
|
||||
ry="4.1854858"
|
||||
y="475"
|
||||
x="-279"
|
||||
height="21"
|
||||
width="34.999985"
|
||||
id="rect6629"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||
<path
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||
id="path6631"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:cx="-266"
|
||||
sodipodi:cy="451"
|
||||
sodipodi:rx="7.4999938"
|
||||
sodipodi:ry="7.5000024"
|
||||
sodipodi:start="3.4953343"
|
||||
sodipodi:end="1.8407347"
|
||||
d="m -273.03562,448.40192 a 7.4999938,7.5000024 0 0 1 9.43617,-4.50737 7.4999938,7.5000024 0 0 1 4.76917,9.30661 7.4999938,7.5000024 0 0 1 -9.16976,5.02725"
|
||||
sodipodi:open="true" />
|
||||
<path
|
||||
d="m -268.10552,458.34925 a 7.4999938,7.5000024 0 0 1 -9.38146,4.80209 7.4999938,7.5000024 0 0 1 -4.92078,-9.31976 7.4999938,7.5000024 0 0 1 9.25653,-5.03869"
|
||||
sodipodi:end="4.9929531"
|
||||
sodipodi:start="0.31864739"
|
||||
sodipodi:ry="7.5000024"
|
||||
sodipodi:rx="7.4999938"
|
||||
sodipodi:cy="455.99963"
|
||||
sodipodi:cx="-275.22797"
|
||||
sodipodi:type="arc"
|
||||
id="path6633"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||
sodipodi:open="true" />
|
||||
<path
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;marker:none;enable-background:accumulate"
|
||||
d="m -314,465 -10,-9.5 10,-9.5 z"
|
||||
id="path6635"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
<rect
|
||||
transform="scale(-1,-1)"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect6637"
|
||||
width="31.999987"
|
||||
height="4.99999"
|
||||
x="283"
|
||||
y="-458" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 9.8 KiB |
@@ -0,0 +1,169 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="80.000008"
|
||||
height="55.000023"
|
||||
viewBox="0 0 80.000008 55.000024"
|
||||
id="svg6535"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="two-finger-swipe-right.svg">
|
||||
<defs
|
||||
id="defs6537" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2"
|
||||
inkscape:cx="-59.169932"
|
||||
inkscape:cy="48.63391"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:showpageshadow="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata6540">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(180,-479.14791)">
|
||||
<g
|
||||
style="display:inline"
|
||||
transform="translate(144,118.14791)"
|
||||
id="g6509">
|
||||
<g
|
||||
id="g6511">
|
||||
<rect
|
||||
rx="3.999995"
|
||||
ry="4.1854858"
|
||||
y="391"
|
||||
x="-324"
|
||||
height="24.999994"
|
||||
width="7.99999"
|
||||
id="rect6513"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||
<rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect6515"
|
||||
width="7.99999"
|
||||
height="43.999989"
|
||||
x="-315"
|
||||
y="372.00003"
|
||||
ry="4.1854858"
|
||||
rx="3.999995" />
|
||||
<rect
|
||||
rx="3.999995"
|
||||
ry="4.1854858"
|
||||
y="367"
|
||||
x="-306"
|
||||
height="49.000015"
|
||||
width="7.99999"
|
||||
id="rect6517"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||
<rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect6519"
|
||||
width="7.99999"
|
||||
height="36.000011"
|
||||
x="-297"
|
||||
y="380"
|
||||
ry="4.1854858"
|
||||
rx="3.999995" />
|
||||
<rect
|
||||
rx="3.999995"
|
||||
ry="4.1854858"
|
||||
y="386"
|
||||
x="-288"
|
||||
height="30.000006"
|
||||
width="7.99999"
|
||||
id="rect6521"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||
<rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect6523"
|
||||
width="28.999994"
|
||||
height="12.99999"
|
||||
x="-324"
|
||||
y="403" />
|
||||
<rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect6525"
|
||||
width="34.999985"
|
||||
height="21"
|
||||
x="-315"
|
||||
y="395"
|
||||
ry="4.1854858"
|
||||
rx="3.999995" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path6527"
|
||||
d="m -254,361 10,9.5 -10,9.5 z"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;marker:none;enable-background:accumulate" />
|
||||
<path
|
||||
sodipodi:open="true"
|
||||
d="m -309.03562,368.40192 a 7.4999938,7.5000024 0 0 1 9.43617,-4.50737 7.4999938,7.5000024 0 0 1 4.76917,9.30661 7.4999938,7.5000024 0 0 1 -9.16976,5.02725"
|
||||
sodipodi:end="1.8407347"
|
||||
sodipodi:start="3.4953343"
|
||||
sodipodi:ry="7.5000024"
|
||||
sodipodi:rx="7.4999938"
|
||||
sodipodi:cy="371"
|
||||
sodipodi:cx="-302"
|
||||
sodipodi:type="arc"
|
||||
id="path6529"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||
<path
|
||||
sodipodi:open="true"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||
id="path6531"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:cx="-311.22797"
|
||||
sodipodi:cy="375.99963"
|
||||
sodipodi:rx="7.4999938"
|
||||
sodipodi:ry="7.5000024"
|
||||
sodipodi:start="0.31864739"
|
||||
sodipodi:end="4.9929531"
|
||||
d="m -304.10552,378.34925 a 7.4999938,7.5000024 0 0 1 -9.38146,4.80209 7.4999938,7.5000024 0 0 1 -4.92078,-9.31976 7.4999938,7.5000024 0 0 1 9.25653,-5.03869" />
|
||||
<rect
|
||||
y="368"
|
||||
x="-295"
|
||||
height="4.99999"
|
||||
width="41.999992"
|
||||
id="rect6533"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 9.6 KiB |
@@ -72,9 +72,6 @@
|
||||
<property name="can_focus">1</property>
|
||||
<property name="hscrollbar_policy">never</property>
|
||||
<property name="min_content_width">150</property>
|
||||
<style>
|
||||
<class name="sidebar"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkTreeView" id="treeview">
|
||||
<property name="visible">1</property>
|
||||
|
||||
@@ -0,0 +1,467 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<!-- interface-requires gtk+ 3.17 -->
|
||||
|
||||
<object class="GFileIcon" id="left-swipe-icon">
|
||||
<property name="file">resource:///icons/gesture-two-finger-swipe-left.svg</property>
|
||||
</object>
|
||||
<object class="GFileIcon" id="right-swipe-icon">
|
||||
<property name="file">resource:///icons/gesture-two-finger-swipe-right.svg</property>
|
||||
</object>
|
||||
|
||||
<object class="GtkShortcutsWindow" id="shortcuts-builder">
|
||||
<property name="modal">1</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsSection">
|
||||
<property name="visible">1</property>
|
||||
<property name="section-name">editor</property>
|
||||
<property name="title" translatable="yes">Editor Shortcuts</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">General</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Global Search</property>
|
||||
<property name="accelerator"><ctrl>period</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Preferences</property>
|
||||
<property name="accelerator"><ctrl>comma</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Command Bar</property>
|
||||
<property name="accelerator"><ctrl>Return</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Terminal</property>
|
||||
<property name="accelerator"><ctrl><shift>t</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Keyboard Shortcuts</property>
|
||||
<property name="accelerator"><ctrl><shift>question</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Panels</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Toggle left panel</property>
|
||||
<property name="accelerator">F9</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Toggle right panel</property>
|
||||
<property name="accelerator"><shift>F9</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Toggle bottom panel</property>
|
||||
<property name="accelerator"><ctrl>F9</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Touchpad gestures</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsGesture">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Switch to the next document</property>
|
||||
<property name="subtitle" translatable="yes">Two finger swipe right</property>
|
||||
<property name="icon">right-swipe-icon</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGesture">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Switch to the previous document</property>
|
||||
<property name="subtitle" translatable="yes">Two finger swipe left</property>
|
||||
<property name="icon">left-swipe-icon</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Files</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>n</property>
|
||||
<property name="title" translatable="yes">Create new document</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>o</property>
|
||||
<property name="title" translatable="yes">Open a document</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>s</property>
|
||||
<property name="title" translatable="yes">Save the document</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>w</property>
|
||||
<property name="title" translatable="yes">Close the document</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl><alt>Page_Down</property>
|
||||
<property name="title" translatable="yes">Switch to the next document</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl><alt>Page_Up</property>
|
||||
<property name="title" translatable="yes">Switch to the previous document</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Find and replace</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>f</property>
|
||||
<property name="title" translatable="yes">Find</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>g</property>
|
||||
<property name="title" translatable="yes">Find the next match</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl><shift>g</property>
|
||||
<property name="title" translatable="yes">Find the previous match</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl><shift>k</property>
|
||||
<property name="title" translatable="yes">Clear highlight</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Copy and Paste</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>c</property>
|
||||
<property name="title" translatable="yes">Copy selected text to clipboard</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>x</property>
|
||||
<property name="title" translatable="yes">Cut selected text to clipboard</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>v</property>
|
||||
<property name="title" translatable="yes">Paste text from clipboard</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Undo and Redo</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>z</property>
|
||||
<property name="title" translatable="yes">Undo previous command</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl><shift>z</property>
|
||||
<property name="title" translatable="yes">Redo previous command</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Editing</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl><shift>a</property>
|
||||
<property name="title" translatable="yes">Increment number at cursor</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl><shift>x</property>
|
||||
<property name="title" translatable="yes">Decrement number at cursor</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>j</property>
|
||||
<property name="title" translatable="yes">Join selected lines</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>space</property>
|
||||
<property name="title" translatable="yes">Show completion window</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator">Insert</property>
|
||||
<property name="title" translatable="yes">Toggle overwrite</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl><alt>i</property>
|
||||
<property name="title" translatable="yes">Reindent line</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Navigation</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><alt>n</property>
|
||||
<property name="title" translatable="yes">Move to next error in file</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><alt>p</property>
|
||||
<property name="title" translatable="yes">Move to previous error in file</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><shift><alt>Left</property>
|
||||
<property name="title" translatable="yes">Move to previous edit location</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><shift><alt>Right</property>
|
||||
<property name="title" translatable="yes">Move to next edit location</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><alt>period</property>
|
||||
<property name="title" translatable="yes">Jump to definition of symbol</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><alt><shift>Up</property>
|
||||
<property name="title" translatable="yes">Move sectionport up within the file</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><alt><shift>Down</property>
|
||||
<property name="title" translatable="yes">Move sectionport down within the file</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><alt><shift>End</property>
|
||||
<property name="title" translatable="yes">Move sectionport to end of file</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><alt><shift>Home</property>
|
||||
<property name="title" translatable="yes">Move sectionport to beginning of file</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>percent</property>
|
||||
<property name="title" translatable="yes">Move to matching bracket</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Selections</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>a</property>
|
||||
<property name="title" translatable="yes">Select all</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>backslash</property>
|
||||
<property name="title" translatable="yes">Unselect all</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsSection">
|
||||
<property name="visible">1</property>
|
||||
<property name="section-name">terminal</property>
|
||||
<property name="title" translatable="yes">Terminal Shortcuts</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">General</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Global Search</property>
|
||||
<property name="accelerator"><ctrl>period</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Preferences</property>
|
||||
<property name="accelerator"><ctrl>comma</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Command Bar</property>
|
||||
<property name="accelerator"><ctrl>Return</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Terminal</property>
|
||||
<property name="accelerator"><ctrl><shift>t</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Keyboard Shortcuts</property>
|
||||
<property name="accelerator"><ctrl><shift>question</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Copy and Paste</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl><shift>c</property>
|
||||
<property name="title" translatable="yes">Copy selected text to clipboard</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl><shift>v</property>
|
||||
<property name="title" translatable="yes">Paste text from clipboard</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Switching</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><alt>1...9</property>
|
||||
<property name="title" translatable="yes">Switch to n-th tab</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
||||
</interface>
|
||||
@@ -0,0 +1,148 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<!-- interface-requires gtk+ 3.17 -->
|
||||
|
||||
<object class="GtkShortcutsWindow" id="shortcuts-clocks">
|
||||
<property name="modal">1</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsSection">
|
||||
<property name="visible">1</property>
|
||||
<property name="section-name">shortcuts</property>
|
||||
<property name="max-height">10</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">General</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>Page_Down</property>
|
||||
<property name="title" translatable="yes">Go to the next section</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>Page_Up</property>
|
||||
<property name="title" translatable="yes">Go to the previous section</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><alt>Q</property>
|
||||
<property name="title" translatable="yes">Quit</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><alt>Left</property>
|
||||
<property name="title" translatable="yes">Forward</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>Right</property>
|
||||
<property name="title" translatable="yes">Back</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="view">world</property>
|
||||
<property name="title" translatable="yes">World Clocks</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>N</property>
|
||||
<property name="title" translatable="yes">Add a world clock</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>S</property>
|
||||
<property name="title" translatable="yes">Select world clocks</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="view">alarm</property>
|
||||
<property name="title" translatable="yes">Alarm</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>N</property>
|
||||
<property name="title" translatable="yes">Add an alarm</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>S</property>
|
||||
<property name="title" translatable="yes">Select alarms</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="view">stopwatch</property>
|
||||
<property name="title" translatable="yes">Stopwatch</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator">Return space</property>
|
||||
<property name="title" translatable="yes">Start / Stop / Continue</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator">L</property>
|
||||
<property name="title" translatable="yes">Lap</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator">Delete</property>
|
||||
<property name="title" translatable="yes">Reset</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="view">timer</property>
|
||||
<property name="title" translatable="yes">Timer</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator">Return space</property>
|
||||
<property name="title" translatable="yes">Start / Stop / Pause</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator">Delete</property>
|
||||
<property name="title" translatable="yes">Reset</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
||||
</interface>
|
||||
@@ -0,0 +1,181 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<!-- interface-requires gtk+ 3.17 -->
|
||||
|
||||
<object class="GFileIcon" id="left-swipe-icon">
|
||||
<property name="file">resource:///icons/gesture-two-finger-swipe-left.svg</property>
|
||||
</object>
|
||||
<object class="GFileIcon" id="right-swipe-icon">
|
||||
<property name="file">resource:///icons/gesture-two-finger-swipe-right.svg</property>
|
||||
</object>
|
||||
|
||||
<object class="GtkShortcutsWindow" id="shortcuts-gedit">
|
||||
<property name="modal">1</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsSection">
|
||||
<property name="visible">1</property>
|
||||
<property name="section-name">shortcuts</property>
|
||||
<property name="max-height">12</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Touchpad gestures</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsGesture">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Switch to the next document</property>
|
||||
<property name="subtitle" translatable="yes">Two finger swipe right</property>
|
||||
<property name="icon">right-swipe-icon</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGesture">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Switch to the previous document</property>
|
||||
<property name="subtitle" translatable="yes">Two finger swipe left</property>
|
||||
<property name="icon">left-swipe-icon</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Documents</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>N</property>
|
||||
<property name="title" translatable="yes">Create new document</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>O</property>
|
||||
<property name="title" translatable="yes">Open a document</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>S</property>
|
||||
<property name="title" translatable="yes">Save the document</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>W</property>
|
||||
<property name="title" translatable="yes">Close the document</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl><Alt>Page_Down</property>
|
||||
<property name="title" translatable="yes">Switch to the next document</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl><Alt>Page_Up</property>
|
||||
<property name="title" translatable="yes">Switch to the previous document</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Find and Replace</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>F</property>
|
||||
<property name="title" translatable="yes">Find</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>G</property>
|
||||
<property name="title" translatable="yes">Find the next match</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl><Shift>G</property>
|
||||
<property name="title" translatable="yes">Find the previous match</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>H</property>
|
||||
<property name="title" translatable="yes">Find and Replace</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl><Shift>K</property>
|
||||
<property name="title" translatable="yes">Clear highlight</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>I</property>
|
||||
<property name="title" translatable="yes">Go to line</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Tools</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><shift>F7</property>
|
||||
<property name="title" translatable="yes">Check spelling</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes">Miscellaneous</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator">F11</property>
|
||||
<property name="title" translatable="yes">Fullscreen on / off</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><ctrl>P</property>
|
||||
<property name="title" translatable="yes">Print the document</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator">Insert</property>
|
||||
<property name="title" translatable="yes">Toggle insert / overwrite</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
||||
</interface>
|
||||
@@ -0,0 +1,92 @@
|
||||
/* Shortcuts Window
|
||||
*
|
||||
* GtkShortcutsWindow is a window that provides a help overlay
|
||||
* for shortcuts and gestures in an application.
|
||||
*/
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
static void
|
||||
show_shortcuts (GtkWidget *window,
|
||||
const gchar *id,
|
||||
const gchar *view)
|
||||
{
|
||||
GtkBuilder *builder;
|
||||
GtkWidget *overlay;
|
||||
gchar *path;
|
||||
|
||||
path = g_strdup_printf ("/shortcuts/%s.ui", id);
|
||||
builder = gtk_builder_new_from_resource (path);
|
||||
g_free (path);
|
||||
overlay = GTK_WIDGET (gtk_builder_get_object (builder, id));
|
||||
gtk_window_set_transient_for (GTK_WINDOW (overlay), GTK_WINDOW (window));
|
||||
g_object_set (overlay, "view-name", view, NULL);
|
||||
gtk_widget_show (overlay);
|
||||
}
|
||||
|
||||
static void
|
||||
builder_shortcuts (GtkWidget *window)
|
||||
{
|
||||
show_shortcuts (window, "shortcuts-builder", NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
gedit_shortcuts (GtkWidget *window)
|
||||
{
|
||||
show_shortcuts (window, "shortcuts-gedit", NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
clocks_shortcuts (GtkWidget *window)
|
||||
{
|
||||
show_shortcuts (window, "shortcuts-clocks", NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
clocks_shortcuts_stopwatch (GtkWidget *window)
|
||||
{
|
||||
show_shortcuts (window, "shortcuts-clocks", "stopwatch");
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
do_shortcuts (GtkWidget *do_widget)
|
||||
{
|
||||
static GtkWidget *window = NULL;
|
||||
static gboolean icons_added = FALSE;
|
||||
|
||||
if (!icons_added)
|
||||
{
|
||||
icons_added = TRUE;
|
||||
gtk_icon_theme_add_resource_path (gtk_icon_theme_get_default (), "/icons");
|
||||
}
|
||||
|
||||
g_type_ensure (G_TYPE_FILE_ICON);
|
||||
|
||||
if (!window)
|
||||
{
|
||||
GtkBuilder *builder;
|
||||
|
||||
builder = gtk_builder_new_from_resource ("/shortcuts/shortcuts.ui");
|
||||
gtk_builder_add_callback_symbols (builder,
|
||||
"builder_shortcuts", G_CALLBACK (builder_shortcuts),
|
||||
"gedit_shortcuts", G_CALLBACK (gedit_shortcuts),
|
||||
"clocks_shortcuts", G_CALLBACK (clocks_shortcuts),
|
||||
"clocks_shortcuts_stopwatch", G_CALLBACK (clocks_shortcuts_stopwatch),
|
||||
NULL);
|
||||
gtk_builder_connect_signals (builder, NULL);
|
||||
window = GTK_WIDGET (gtk_builder_get_object (builder, "window1"));
|
||||
gtk_window_set_screen (GTK_WINDOW (window),
|
||||
gtk_widget_get_screen (do_widget));
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
|
||||
g_object_unref (builder);
|
||||
}
|
||||
|
||||
if (!gtk_widget_get_visible (window))
|
||||
gtk_widget_show_all (window);
|
||||
else
|
||||
gtk_widget_destroy (window);
|
||||
|
||||
return window;
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<!-- interface-requires gtk+ 3.17 -->
|
||||
|
||||
<object class="GtkWindow" id="window1">
|
||||
<property name="title" translatable="yes">Shortcuts</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">1</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="margin">50</property>
|
||||
<property name="spacing">10</property>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="visible">1</property>
|
||||
<property name="label">Builder</property>
|
||||
<signal name="clicked" handler="builder_shortcuts" swapped="1" object="window1"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="visible">1</property>
|
||||
<property name="label">GEdit</property>
|
||||
<signal name="clicked" handler="gedit_shortcuts" swapped="1" object="window1"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="visible">1</property>
|
||||
<property name="label">Clocks - All</property>
|
||||
<signal name="clicked" handler="clocks_shortcuts" swapped="1" object="window1"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="visible">1</property>
|
||||
<property name="label">Clocks - Stopwatch</property>
|
||||
<signal name="clicked" handler="clocks_shortcuts_stopwatch" swapped="1" object="window1"/>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
@@ -645,7 +645,7 @@ load_icon_items (GtkToolPalette *palette)
|
||||
icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (palette)));
|
||||
|
||||
contexts = gtk_icon_theme_list_contexts (icon_theme);
|
||||
for (l = contexts; l; l = g_list_next (l))
|
||||
for (l = contexts; l; l = l->next)
|
||||
{
|
||||
gchar *context = l->data;
|
||||
GList *icon_names;
|
||||
@@ -663,7 +663,7 @@ load_icon_items (GtkToolPalette *palette)
|
||||
icon_names = gtk_icon_theme_list_icons (icon_theme, context);
|
||||
icon_names = g_list_sort (icon_names, (GCompareFunc) strcmp);
|
||||
|
||||
for (ll = icon_names; ll; ll = g_list_next (ll))
|
||||
for (ll = icon_names; ll; ll = ll->next)
|
||||
{
|
||||
GtkToolItem *item;
|
||||
gchar *id = ll->data;
|
||||
|
||||
@@ -64,6 +64,7 @@ EXTRA_DIST += \
|
||||
widget-factory.ui \
|
||||
widget-factory.css \
|
||||
menus.ui \
|
||||
help-overlay.ui \
|
||||
widget-factory.gresource.xml \
|
||||
data/source.svg \
|
||||
data/symbolic-source.svg
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
<interface>
|
||||
<object class="GtkShortcutsWindow" id="help_overlay">
|
||||
<child>
|
||||
<object class="GtkShortcutsSection">
|
||||
<property name="visible">1</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title">General</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator">F1</property>
|
||||
<property name="title">Show About Dialog</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><Primary>q</property>
|
||||
<property name="title">Quit</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><Primary>d</property>
|
||||
<property name="title">Switch to dark theme</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title">Traditional</property>
|
||||
<property name="view">page2</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><Primary>s</property>
|
||||
<property name="title">Search</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator">Delete</property>
|
||||
<property name="title">Delete</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><Primary>b</property>
|
||||
<property name="title">Set background</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title">Modern</property>
|
||||
<property name="view">page3</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><Primary>o</property>
|
||||
<property name="title">Open a file</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><Primary>r</property>
|
||||
<property name="title">Start recording</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="accelerator"><Primary>l</property>
|
||||
<property name="title">Lock or unlock</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
@@ -69,6 +69,13 @@ get_busy (GSimpleAction *action,
|
||||
gtk_widget_set_sensitive (window, FALSE);
|
||||
}
|
||||
|
||||
static gint current_page = 0;
|
||||
static gboolean
|
||||
on_page (gint i)
|
||||
{
|
||||
return current_page == i;
|
||||
}
|
||||
|
||||
static void
|
||||
activate_search (GSimpleAction *action,
|
||||
GVariant *parameter,
|
||||
@@ -77,6 +84,9 @@ activate_search (GSimpleAction *action,
|
||||
GtkWidget *window = user_data;
|
||||
GtkWidget *searchbar;
|
||||
|
||||
if (!on_page (2))
|
||||
return;
|
||||
|
||||
searchbar = GTK_WIDGET (g_object_get_data (G_OBJECT (window), "searchbar"));
|
||||
gtk_search_bar_set_search_mode (GTK_SEARCH_BAR (searchbar), TRUE);
|
||||
}
|
||||
@@ -89,10 +99,79 @@ activate_delete (GSimpleAction *action,
|
||||
GtkWidget *window = user_data;
|
||||
GtkWidget *infobar;
|
||||
|
||||
if (!on_page (2))
|
||||
return;
|
||||
|
||||
infobar = GTK_WIDGET (g_object_get_data (G_OBJECT (window), "infobar"));
|
||||
gtk_widget_show (infobar);
|
||||
}
|
||||
|
||||
static void populate_flowbox (GtkWidget *flowbox);
|
||||
|
||||
static void
|
||||
activate_background (GSimpleAction *action,
|
||||
GVariant *parameter,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkWidget *window = user_data;
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *flowbox;
|
||||
|
||||
if (!on_page (2))
|
||||
return;
|
||||
|
||||
dialog = GTK_WIDGET (g_object_get_data (G_OBJECT (window), "selection_dialog"));
|
||||
flowbox = GTK_WIDGET (g_object_get_data (G_OBJECT (window), "selection_flowbox"));
|
||||
|
||||
gtk_widget_show (dialog);
|
||||
populate_flowbox (flowbox);
|
||||
}
|
||||
|
||||
static void
|
||||
activate_open (GSimpleAction *action,
|
||||
GVariant *parameter,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkWidget *window = user_data;
|
||||
GtkWidget *button;
|
||||
|
||||
if (!on_page (3))
|
||||
return;
|
||||
|
||||
button = GTK_WIDGET (g_object_get_data (G_OBJECT (window), "open_menubutton"));
|
||||
gtk_button_clicked (GTK_BUTTON (button));
|
||||
}
|
||||
|
||||
static void
|
||||
activate_record (GSimpleAction *action,
|
||||
GVariant *parameter,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkWidget *window = user_data;
|
||||
GtkWidget *button;
|
||||
|
||||
if (!on_page (3))
|
||||
return;
|
||||
|
||||
button = GTK_WIDGET (g_object_get_data (G_OBJECT (window), "record_button"));
|
||||
gtk_button_clicked (GTK_BUTTON (button));
|
||||
}
|
||||
|
||||
static void
|
||||
activate_lock (GSimpleAction *action,
|
||||
GVariant *parameter,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkWidget *window = user_data;
|
||||
GtkWidget *button;
|
||||
|
||||
if (!on_page (3))
|
||||
return;
|
||||
|
||||
button = GTK_WIDGET (g_object_get_data (G_OBJECT (window), "lockbutton"));
|
||||
gtk_button_clicked (GTK_BUTTON (button));
|
||||
}
|
||||
|
||||
static void
|
||||
activate_about (GSimpleAction *action,
|
||||
GVariant *parameter,
|
||||
@@ -469,14 +548,26 @@ static void
|
||||
page_changed_cb (GtkWidget *stack, GParamSpec *pspec, gpointer data)
|
||||
{
|
||||
const gchar *name;
|
||||
GtkWidget *window;
|
||||
GtkWidget *page;
|
||||
|
||||
if (gtk_widget_in_destruction (stack))
|
||||
return;
|
||||
|
||||
name = gtk_stack_get_visible_child_name (GTK_STACK (stack));
|
||||
|
||||
window = gtk_widget_get_ancestor (stack, GTK_TYPE_APPLICATION_WINDOW);
|
||||
g_object_set (gtk_application_window_get_help_overlay (GTK_APPLICATION_WINDOW (window)),
|
||||
"view-name", name,
|
||||
NULL);
|
||||
|
||||
if (g_str_equal (name, "page1"))
|
||||
current_page = 1;
|
||||
else if (g_str_equal (name, "page2"))
|
||||
current_page = 2;
|
||||
if (g_str_equal (name, "page3"))
|
||||
{
|
||||
current_page = 3;
|
||||
page = gtk_stack_get_visible_child (GTK_STACK (stack));
|
||||
set_needs_attention (GTK_WIDGET (page), FALSE);
|
||||
}
|
||||
@@ -818,7 +909,7 @@ background_loaded_cb (GObject *source,
|
||||
}
|
||||
|
||||
static void
|
||||
populate_flowbox (GtkWidget *button, GtkWidget *flowbox)
|
||||
populate_flowbox (GtkWidget *flowbox)
|
||||
{
|
||||
const gchar *location;
|
||||
GDir *dir;
|
||||
@@ -831,7 +922,10 @@ populate_flowbox (GtkWidget *button, GtkWidget *flowbox)
|
||||
GdkPixbuf *pixbuf;
|
||||
GtkWidget *child;
|
||||
|
||||
g_signal_handlers_disconnect_by_func (button, populate_flowbox, flowbox);
|
||||
if (GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (flowbox), "populated")))
|
||||
return;
|
||||
|
||||
g_object_set_data (G_OBJECT (flowbox), "populated", GUINT_TO_POINTER (1));
|
||||
|
||||
pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, 110, 70);
|
||||
gdk_pixbuf_fill (pixbuf, 0xffffffff);
|
||||
@@ -1179,7 +1273,7 @@ add_item (GtkTextView *tv,
|
||||
{
|
||||
item = gtk_check_button_new ();
|
||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (item), set);
|
||||
gtk_button_set_focus_on_click (GTK_BUTTON (item), FALSE);
|
||||
gtk_widget_set_focus_on_click (item, FALSE);
|
||||
g_signal_connect (item, "clicked", G_CALLBACK (activate_item), tv);
|
||||
}
|
||||
|
||||
@@ -1379,7 +1473,11 @@ activate (GApplication *app)
|
||||
{ "dark", NULL, NULL, "false", change_theme_state },
|
||||
{ "search", activate_search, NULL, NULL, NULL },
|
||||
{ "delete", activate_delete, NULL, NULL, NULL },
|
||||
{ "busy", get_busy, NULL, NULL, NULL }
|
||||
{ "busy", get_busy, NULL, NULL, NULL },
|
||||
{ "background", activate_background, NULL, NULL, NULL },
|
||||
{ "open", activate_open, NULL, NULL, NULL },
|
||||
{ "record", activate_record, NULL, NULL, NULL },
|
||||
{ "lock", activate_lock, NULL, NULL, NULL },
|
||||
};
|
||||
struct {
|
||||
const gchar *action_and_target;
|
||||
@@ -1389,10 +1487,15 @@ activate (GApplication *app)
|
||||
{ "app.quit", { "<Primary>q", NULL } },
|
||||
{ "win.dark", { "<Primary>d", NULL } },
|
||||
{ "win.search", { "<Primary>s", NULL } },
|
||||
{ "win.delete", { "Delete", NULL } }
|
||||
{ "win.delete", { "Delete", NULL } },
|
||||
{ "win.background", { "<Primary>b", NULL } },
|
||||
{ "win.open", { "<Primary>o", NULL } },
|
||||
{ "win.record", { "<Primary>r", NULL } },
|
||||
{ "win.lock", { "<Primary>l", NULL } },
|
||||
};
|
||||
gint i;
|
||||
GPermission *permission;
|
||||
GAction *action;
|
||||
|
||||
g_type_ensure (my_text_view_get_type ());
|
||||
|
||||
@@ -1498,6 +1601,7 @@ activate (GApplication *app)
|
||||
stack = (GtkWidget *)gtk_builder_get_object (builder, "toplevel_stack");
|
||||
g_signal_connect (widget, "clicked", G_CALLBACK (action_dialog_button_clicked), stack);
|
||||
g_signal_connect (stack, "notify::visible-child-name", G_CALLBACK (page_changed_cb), NULL);
|
||||
page_changed_cb (stack, NULL, NULL);
|
||||
|
||||
dialog = (GtkWidget *)gtk_builder_get_object (builder, "preference_dialog");
|
||||
g_signal_connect (dialog, "response", G_CALLBACK (close_dialog), NULL);
|
||||
@@ -1507,13 +1611,15 @@ activate (GApplication *app)
|
||||
g_signal_connect (widget, "clicked", G_CALLBACK (show_dialog), dialog);
|
||||
|
||||
dialog = (GtkWidget *)gtk_builder_get_object (builder, "selection_dialog");
|
||||
g_object_set_data (G_OBJECT (window), "selection_dialog", dialog);
|
||||
widget = (GtkWidget *)gtk_builder_get_object (builder, "text3");
|
||||
g_signal_connect (dialog, "response", G_CALLBACK (close_selection_dialog), widget);
|
||||
widget = (GtkWidget *)gtk_builder_get_object (builder, "selection_dialog_button");
|
||||
g_signal_connect (widget, "clicked", G_CALLBACK (show_dialog), dialog);
|
||||
|
||||
widget2 = (GtkWidget *)gtk_builder_get_object (builder, "selection_flowbox");
|
||||
g_signal_connect (widget, "clicked", G_CALLBACK (populate_flowbox), widget2);
|
||||
g_object_set_data (G_OBJECT (window), "selection_flowbox", widget2);
|
||||
g_signal_connect_swapped (widget, "clicked", G_CALLBACK (populate_flowbox), widget2);
|
||||
|
||||
widget = (GtkWidget *)gtk_builder_get_object (builder, "charletree");
|
||||
populate_model ((GtkTreeStore *)gtk_tree_view_get_model (GTK_TREE_VIEW (widget)));
|
||||
@@ -1538,6 +1644,7 @@ activate (GApplication *app)
|
||||
set_accel (GTK_APPLICATION (app), GTK_WIDGET (gtk_builder_get_object (builder, "searchmenuitem")));
|
||||
set_accel (GTK_APPLICATION (app), GTK_WIDGET (gtk_builder_get_object (builder, "darkmenuitem")));
|
||||
set_accel (GTK_APPLICATION (app), GTK_WIDGET (gtk_builder_get_object (builder, "aboutmenuitem")));
|
||||
set_accel (GTK_APPLICATION (app), GTK_WIDGET (gtk_builder_get_object (builder, "bgmenuitem")));
|
||||
|
||||
widget2 = (GtkWidget *)gtk_builder_get_object (builder, "tooltextview");
|
||||
|
||||
@@ -1580,13 +1687,26 @@ activate (GApplication *app)
|
||||
gtk_popover_set_default_widget (GTK_POPOVER (widget), widget3);
|
||||
g_signal_connect (widget2, "notify::text", G_CALLBACK (open_popover_text_changed), widget3);
|
||||
g_signal_connect_swapped (widget3, "clicked", G_CALLBACK (gtk_widget_hide), widget);
|
||||
widget = (GtkWidget *)gtk_builder_get_object (builder, "open_menubutton");
|
||||
g_object_set_data (G_OBJECT (window), "open_menubutton", widget);
|
||||
widget = (GtkWidget *)gtk_builder_get_object (builder, "record_button");
|
||||
g_object_set_data (G_OBJECT (window), "record_button", widget);
|
||||
|
||||
widget = (GtkWidget *)gtk_builder_get_object (builder, "lockbox");
|
||||
widget2 = (GtkWidget *)gtk_builder_get_object (builder, "lockbutton");
|
||||
g_object_set_data (G_OBJECT (window), "lockbutton", widget2);
|
||||
permission = g_object_new (g_test_permission_get_type (), NULL);
|
||||
g_object_bind_property (permission, "allowed",
|
||||
widget, "sensitive",
|
||||
G_BINDING_SYNC_CREATE);
|
||||
action = g_action_map_lookup_action (G_ACTION_MAP (window), "open");
|
||||
g_object_bind_property (permission, "allowed",
|
||||
action, "enabled",
|
||||
G_BINDING_SYNC_CREATE);
|
||||
action = g_action_map_lookup_action (G_ACTION_MAP (window), "record");
|
||||
g_object_bind_property (permission, "allowed",
|
||||
action, "enabled",
|
||||
G_BINDING_SYNC_CREATE);
|
||||
gtk_lock_button_set_permission (GTK_LOCK_BUTTON (widget2), permission);
|
||||
g_object_unref (permission);
|
||||
|
||||
|
||||
@@ -9,4 +9,7 @@
|
||||
<gresource prefix="/org/gtk/WidgetFactory/gtk">
|
||||
<file preprocess="xml-stripblanks">menus.ui</file>
|
||||
</gresource>
|
||||
<gresource prefix="/org/gtk/WidgetFactory/gtk">
|
||||
<file preprocess="xml-stripblanks">help-overlay.ui</file>
|
||||
</gresource>
|
||||
</gresources>
|
||||
|
||||
@@ -2485,6 +2485,15 @@ microphone-sensitivity-medium-symbolic</property>
|
||||
<property name="action_name">win.statusbar</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="bgmenuitem">
|
||||
<property name="label">_Select Background</property>
|
||||
<property name="visible">1</property>
|
||||
<property name="use_action_appearance">0</property>
|
||||
<property name="use_underline">1</property>
|
||||
<property name="action_name">win.background</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
@@ -2902,7 +2911,7 @@ microphone-sensitivity-medium-symbolic</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkMenuButton">
|
||||
<object class="GtkMenuButton" id="open_menubutton">
|
||||
<property name="visible">1</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="popover">open_popover</property>
|
||||
|
||||
@@ -101,6 +101,10 @@
|
||||
<title>Index of new symbols in 3.18</title>
|
||||
<xi:include href="xml/api-index-3.18.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
<index id="api-index-3-20" role="3.20">
|
||||
<title>Index of new symbols in 3.20</title>
|
||||
<xi:include href="xml/api-index-3.20.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
|
||||
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
|
||||
|
||||
|
||||
@@ -631,6 +631,7 @@ GdkPoint
|
||||
GdkRectangle
|
||||
gdk_rectangle_intersect
|
||||
gdk_rectangle_union
|
||||
gdk_rectangle_equal
|
||||
|
||||
<SUBSECTION Private>
|
||||
gdk_rectangle_get_type
|
||||
|
||||
@@ -315,7 +315,8 @@ content_files = \
|
||||
input-handling.xml \
|
||||
visual_index.xml \
|
||||
getting_started.xml \
|
||||
overview.xml
|
||||
overview.xml \
|
||||
gtk-query-settings.xml
|
||||
|
||||
expand_content_files = \
|
||||
compiling.sgml \
|
||||
@@ -469,7 +470,10 @@ HTML_IMAGES = \
|
||||
$(srcdir)/images/getting-started-app10.png \
|
||||
$(srcdir)/images/exampleapp.png \
|
||||
$(srcdir)/images/flow-box.png \
|
||||
$(srcdir)/images/inspector.png
|
||||
$(srcdir)/images/inspector.png \
|
||||
$(srcdir)/images/gedit-shortcuts.png \
|
||||
$(srcdir)/images/clocks-shortcuts.png \
|
||||
$(srcdir)/images/builder-shortcuts.png
|
||||
|
||||
if ENABLE_DOC_CROSS_REFERENCES
|
||||
# Extra options to supply to gtkdoc-fixref
|
||||
@@ -499,7 +503,8 @@ man_MANS = \
|
||||
gtk3-widget-factory.1 \
|
||||
gtk3-icon-browser.1 \
|
||||
broadwayd.1 \
|
||||
gtk-builder-tool.1
|
||||
gtk-builder-tool.1 \
|
||||
gtk-query-settings.1
|
||||
|
||||
if ENABLE_MAN
|
||||
|
||||
|
||||
@@ -203,6 +203,7 @@
|
||||
<xi:include href="xml/gtkcolorchooserdialog.xml" />
|
||||
<xi:include href="xml/gtkfilechooser.xml" />
|
||||
<xi:include href="xml/gtkfilechooserbutton.xml" />
|
||||
<xi:include href="xml/gtkfilechoosernative.xml" />
|
||||
<xi:include href="xml/gtkfilechooserdialog.xml" />
|
||||
<xi:include href="xml/gtkfilechooserwidget.xml" />
|
||||
<xi:include href="xml/gtkfilefilter.xml" />
|
||||
@@ -239,6 +240,15 @@
|
||||
<xi:include href="xml/gtkpagesetupunixdialog.xml" />
|
||||
</chapter>
|
||||
|
||||
<chapter id="ShortcutsOverview">
|
||||
<title>Shortcuts Overview</title>
|
||||
<xi:include href="xml/gtkshortcutswindow.xml" />
|
||||
<xi:include href="xml/gtkshortcutssection.xml" />
|
||||
<xi:include href="xml/gtkshortcutsgroup.xml" />
|
||||
<xi:include href="xml/gtkshortcutsshortcut.xml" />
|
||||
<xi:include href="xml/gtkshortcutsgesture.xml" />
|
||||
</chapter>
|
||||
|
||||
<chapter id="MiscObjects">
|
||||
<title>Miscellaneous</title>
|
||||
<xi:include href="xml/gtkadjustment.xml" />
|
||||
@@ -263,6 +273,7 @@
|
||||
<xi:include href="xml/gtkmenushell.xml" />
|
||||
<xi:include href="xml/gtkrange.xml" />
|
||||
<xi:include href="xml/gtkimcontext.xml" />
|
||||
<xi:include href="xml/gtknativedialog.xml" />
|
||||
</chapter>
|
||||
|
||||
<chapter id="PlugSocket">
|
||||
@@ -406,6 +417,7 @@
|
||||
<xi:include href="gtk-encode-symbolic-svg.xml" />
|
||||
<xi:include href="gtk-builder-tool.xml" />
|
||||
<xi:include href="gtk-launch.xml" />
|
||||
<xi:include href="gtk-query-settings.xml" />
|
||||
<xi:include href="broadwayd.xml" />
|
||||
</part>
|
||||
|
||||
@@ -472,6 +484,10 @@
|
||||
<title>Index of new symbols in 3.18</title>
|
||||
<xi:include href="xml/api-index-3.18.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
<index id="api-index-3-20" role="3.20">
|
||||
<title>Index of new symbols in 3.20</title>
|
||||
<xi:include href="xml/api-index-3.20.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
|
||||
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
|
||||
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
|
||||
]>
|
||||
<refentry id="gtk-query-settings">
|
||||
|
||||
<refentryinfo>
|
||||
<title>gtk-query-settings</title>
|
||||
<productname>GTK+</productname>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<contrib>Developer</contrib>
|
||||
<firstname>Timm</firstname>
|
||||
<surname>Bäder</surname>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>gtk-query-settings</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
<refmiscinfo class="manual">User Commands</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>gtk-query-settings</refname>
|
||||
<refpurpose>Utility to print name and value of all GtkSettings properties</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
<command>gtk-query-settings</command>
|
||||
<arg choice="opt"><replaceable>PATTERN</replaceable></arg>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1><title>Description</title>
|
||||
<para>
|
||||
<command>gtk-query-settings</command> prints both name and value of all properties
|
||||
available in the GtkSettings class. Optionally, you can filter which properties
|
||||
to list by specifying a PATTERN.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
||||
@@ -1432,6 +1432,25 @@ gtk_file_chooser_error_quark
|
||||
gtk_file_chooser_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkfilechoosernative</FILE>
|
||||
<TITLE>GtkFileChooserNative</TITLE>
|
||||
gtk_file_chooser_native_new
|
||||
gtk_file_chooser_native_get_accept_label
|
||||
gtk_file_chooser_native_set_accept_label
|
||||
gtk_file_chooser_native_get_cancel_label
|
||||
gtk_file_chooser_native_set_cancel_label
|
||||
<SUBSECTION Standard>
|
||||
GTK_FILE_CHOOSER_NATIVE
|
||||
GTK_IS_FILE_CHOOSER_NATIVE
|
||||
GTK_TYPE_FILE_CHOOSER_NATIVE
|
||||
GTK_FILE_CHOOSER_NATIVE_CLASS
|
||||
GTK_IS_FILE_CHOOSER_NATIVE_CLASS
|
||||
GTK_FILE_CHOOSER_NATIVE_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
gtk_file_chooser_native_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkfilechooserdialog</FILE>
|
||||
<TITLE>GtkFileChooserDialog</TITLE>
|
||||
@@ -2493,6 +2512,27 @@ GtkMiscPrivate
|
||||
gtk_misc_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtknativedialog</FILE>
|
||||
<TITLE>GtkNativeDialog</TITLE>
|
||||
GTK_TYPE_NATIVE_DIALOG
|
||||
GtkNativeDialogClass
|
||||
gtk_native_dialog_show
|
||||
gtk_native_dialog_hide
|
||||
gtk_native_dialog_get_visible
|
||||
gtk_native_dialog_set_modal
|
||||
gtk_native_dialog_get_modal
|
||||
gtk_native_dialog_set_title
|
||||
gtk_native_dialog_get_title
|
||||
gtk_native_dialog_set_transient_for
|
||||
gtk_native_dialog_get_transient_for
|
||||
gtk_native_dialog_run
|
||||
<SUBSECTION Standard>
|
||||
GtkNativeDialog
|
||||
<SUBSECTION Private>
|
||||
gtk_native_dialog_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtknotebook</FILE>
|
||||
<TITLE>GtkNotebook</TITLE>
|
||||
@@ -3294,6 +3334,7 @@ gtk_settings_set_property_value
|
||||
gtk_settings_set_string_property
|
||||
gtk_settings_set_long_property
|
||||
gtk_settings_set_double_property
|
||||
gtk_settings_reset_property
|
||||
GtkIMPreeditStyle
|
||||
GtkIMStatusStyle
|
||||
<SUBSECTION Standard>
|
||||
@@ -3809,6 +3850,7 @@ gtk_text_tag_new
|
||||
gtk_text_tag_get_priority
|
||||
gtk_text_tag_set_priority
|
||||
gtk_text_tag_event
|
||||
gtk_text_tag_changed
|
||||
GtkTextAttributes
|
||||
GtkTextAppearance
|
||||
gtk_text_attributes_new
|
||||
@@ -5551,6 +5593,7 @@ gtk_widget_get_allocated_height
|
||||
gtk_widget_get_allocation
|
||||
gtk_widget_set_allocation
|
||||
gtk_widget_get_allocated_baseline
|
||||
gtk_widget_get_allocated_size
|
||||
gtk_widget_get_clip
|
||||
gtk_widget_set_clip
|
||||
gtk_widget_get_app_paintable
|
||||
@@ -5600,6 +5643,8 @@ gtk_widget_get_action_group
|
||||
gtk_widget_get_path
|
||||
gtk_widget_get_style_context
|
||||
gtk_widget_reset_style
|
||||
gtk_widget_class_get_css_name
|
||||
gtk_widget_class_set_css_name
|
||||
|
||||
<SUBSECTION>
|
||||
gtk_requisition_new
|
||||
@@ -5945,6 +5990,7 @@ gtk_widget_path_iter_add_region
|
||||
gtk_widget_path_iter_clear_classes
|
||||
gtk_widget_path_iter_clear_regions
|
||||
gtk_widget_path_iter_get_name
|
||||
gtk_widget_path_iter_get_object_name
|
||||
gtk_widget_path_iter_get_object_type
|
||||
gtk_widget_path_iter_get_siblings
|
||||
gtk_widget_path_iter_get_sibling_index
|
||||
@@ -5960,6 +6006,7 @@ gtk_widget_path_iter_list_regions
|
||||
gtk_widget_path_iter_remove_class
|
||||
gtk_widget_path_iter_remove_region
|
||||
gtk_widget_path_iter_set_name
|
||||
gtk_widget_path_iter_set_object_name
|
||||
gtk_widget_path_iter_set_object_type
|
||||
gtk_widget_path_iter_set_state
|
||||
gtk_widget_path_length
|
||||
@@ -7543,6 +7590,8 @@ gtk_application_window_new
|
||||
gtk_application_window_set_show_menubar
|
||||
gtk_application_window_get_show_menubar
|
||||
gtk_application_window_get_id
|
||||
gtk_application_window_set_help_overlay
|
||||
gtk_application_window_get_help_overlay
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_APPLICATION_WINDOW
|
||||
@@ -8420,3 +8469,74 @@ GTK_IS_GL_AREA_CLASS
|
||||
<SUBSECTION Private>
|
||||
gtk_gl_area_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkshortcutswindow</FILE>
|
||||
GtkShortcutsWindow
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_SHORTCUTS_WINDOW
|
||||
GTK_SHORTCUTS_WINDOW
|
||||
GTK_IS_SHORTCUTS_WINDOW
|
||||
GTK_SHORTCUTS_WINDOW_CLASS
|
||||
GTK_IS_SHORTCUTS_WINDOW_CLASS
|
||||
GTK_GET_SHORTCUTS_WINDOW_CLASS
|
||||
<SUBSECTION Private>
|
||||
gtk_shortcuts_window_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkshortcutssection</FILE>
|
||||
GtkShortcutsSection
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_SHORTCUTS_SECTION
|
||||
GTK_SHORTCUTS_SECTION
|
||||
GTK_IS_SHORTCUTS_SECTION
|
||||
GTK_SHORTCUTS_SECTION_CLASS
|
||||
GTK_IS_SHORTCUTS_SECTION_CLASS
|
||||
GTK_GET_SHORTCUTS_SECTION_CLASS
|
||||
<SUBSECTION Private>
|
||||
gtk_shortcuts_section_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkshortcutsgroup</FILE>
|
||||
GtkShortcutsGroup
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_SHORTCUTS_GROUP
|
||||
GTK_SHORTCUTS_GROUP
|
||||
GTK_IS_SHORTCUTS_GROUP
|
||||
GTK_SHORTCUTS_GROUP_CLASS
|
||||
GTK_IS_SHORTCUTS_GROUP_CLASS
|
||||
GTK_GET_SHORTCUTS_GROUP_CLASS
|
||||
<SUBSECTION Private>
|
||||
gtk_shortcuts_group_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkshortcutsshortcut</FILE>
|
||||
GtkShortcutsShortcut
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_SHORTCUTS_SHORTCUT
|
||||
GTK_SHORTCUTS_SHORTCUT
|
||||
GTK_IS_SHORTCUTS_SHORTCUT
|
||||
GTK_SHORTCUTS_SHORTCUT_CLASS
|
||||
GTK_IS_SHORTCUTS_SHORTCUT_CLASS
|
||||
GTK_GET_SHORTCUTS_SHORTCUT_CLASS
|
||||
<SUBSECTION Private>
|
||||
<SUBSECTION Private>
|
||||
gtk_shortcuts_shortcut_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkshortcutsgesture</FILE>
|
||||
GtkShortcutsGesture
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_SHORTCUTS_GESTURE
|
||||
GTK_SHORTCUTS_GESTURE
|
||||
GTK_IS_SHORTCUTS_GESTURE
|
||||
GTK_SHORTCUTS_GESTURE_CLASS
|
||||
GTK_IS_SHORTCUTS_GESTURE_CLASS
|
||||
GTK_GET_SHORTCUTS_GESTURE_CLASS
|
||||
<SUBSECTION Private>
|
||||
gtk_shortcuts_gesture_get_type
|
||||
</SECTION>
|
||||
|
||||
@@ -173,12 +173,17 @@ gtk_separator_get_type
|
||||
gtk_separator_menu_item_get_type
|
||||
gtk_separator_tool_item_get_type
|
||||
gtk_settings_get_type
|
||||
gtk_stack_sidebar_get_type
|
||||
gtk_shortcuts_window_get_type
|
||||
gtk_shortcuts_section_get_type
|
||||
gtk_shortcuts_group_get_type
|
||||
gtk_shortcuts_shortcut_get_type
|
||||
gtk_shortcuts_gesture_get_type
|
||||
gtk_size_group_get_type
|
||||
@ENABLE_ON_X11@gtk_socket_get_type
|
||||
gtk_spin_button_get_type
|
||||
gtk_spinner_get_type
|
||||
gtk_stack_get_type
|
||||
gtk_stack_sidebar_get_type
|
||||
gtk_stack_switcher_get_type
|
||||
gtk_statusbar_get_type
|
||||
gtk_status_icon_get_type
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 73 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 62 KiB |
@@ -144,6 +144,7 @@ static const GDebugKey gdk_gl_keys[] = {
|
||||
{"software-draw-gl", GDK_GL_SOFTWARE_DRAW_GL},
|
||||
{"software-draw-surface", GDK_GL_SOFTWARE_DRAW_SURFACE},
|
||||
{"texture-rectangle", GDK_GL_TEXTURE_RECTANGLE},
|
||||
{"legacy", GDK_GL_LEGACY},
|
||||
};
|
||||
|
||||
#ifdef G_ENABLE_DEBUG
|
||||
|
||||
+21
-15
@@ -63,6 +63,7 @@ enum {
|
||||
static guint signals [LAST_SIGNAL] = { 0 };
|
||||
|
||||
|
||||
static void gdk_device_finalize (GObject *object);
|
||||
static void gdk_device_dispose (GObject *object);
|
||||
static void gdk_device_set_property (GObject *object,
|
||||
guint prop_id,
|
||||
@@ -99,6 +100,7 @@ gdk_device_class_init (GdkDeviceClass *klass)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
object_class->finalize = gdk_device_finalize;
|
||||
object_class->dispose = gdk_device_dispose;
|
||||
object_class->set_property = gdk_device_set_property;
|
||||
object_class->get_property = gdk_device_get_property;
|
||||
@@ -298,6 +300,25 @@ gdk_device_init (GdkDevice *device)
|
||||
device->axes = g_array_new (FALSE, TRUE, sizeof (GdkAxisInfo));
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_device_finalize (GObject *object)
|
||||
{
|
||||
GdkDevice *device = GDK_DEVICE (object);
|
||||
|
||||
if (device->axes)
|
||||
{
|
||||
g_array_free (device->axes, TRUE);
|
||||
device->axes = NULL;
|
||||
}
|
||||
|
||||
g_clear_pointer (&device->name, g_free);
|
||||
g_clear_pointer (&device->keys, g_free);
|
||||
g_clear_pointer (&device->vendor_id, g_free);
|
||||
g_clear_pointer (&device->product_id, g_free);
|
||||
|
||||
G_OBJECT_CLASS (gdk_device_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_device_dispose (GObject *object)
|
||||
{
|
||||
@@ -315,21 +336,6 @@ gdk_device_dispose (GObject *object)
|
||||
device->associated = NULL;
|
||||
}
|
||||
|
||||
if (device->axes)
|
||||
{
|
||||
g_array_free (device->axes, TRUE);
|
||||
device->axes = NULL;
|
||||
}
|
||||
|
||||
g_free (device->name);
|
||||
g_free (device->keys);
|
||||
|
||||
device->name = NULL;
|
||||
device->keys = NULL;
|
||||
|
||||
g_clear_pointer (&device->vendor_id, g_free);
|
||||
g_clear_pointer (&device->product_id, g_free);
|
||||
|
||||
G_OBJECT_CLASS (gdk_device_parent_class)->dispose (object);
|
||||
}
|
||||
|
||||
|
||||
@@ -1501,6 +1501,7 @@ gdk_display_get_n_screens (GdkDisplay *display)
|
||||
* Returns: (transfer none): the #GdkScreen object
|
||||
*
|
||||
* Since: 2.2
|
||||
* Deprecated: 3.20: There is only one screen; use gdk_display_get_default_screen() to get it.
|
||||
*/
|
||||
GdkScreen *
|
||||
gdk_display_get_screen (GdkDisplay *display,
|
||||
|
||||
+1
-1
@@ -108,7 +108,7 @@ _gdk_event_queue_find_first (GdkDisplay *display)
|
||||
return tmp_list;
|
||||
}
|
||||
|
||||
tmp_list = g_list_next (tmp_list);
|
||||
tmp_list = tmp_list->next;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
||||
+55
-6
@@ -147,9 +147,27 @@ bind_vao (GdkGLContextPaintData *paint_data)
|
||||
static void
|
||||
use_texture_2d_program (GdkGLContextPaintData *paint_data)
|
||||
{
|
||||
static const char *vertex_shader_code =
|
||||
static const char *vertex_shader_code_150 =
|
||||
"#version 150\n"
|
||||
"uniform sampler2D map;"
|
||||
"in vec2 position;\n"
|
||||
"in vec2 uv;\n"
|
||||
"out vec2 vUv;\n"
|
||||
"void main() {\n"
|
||||
" gl_Position = vec4(position, 0, 1);\n"
|
||||
" vUv = uv;\n"
|
||||
"}\n";
|
||||
static const char *fragment_shader_code_150 =
|
||||
"#version 150\n"
|
||||
"in vec2 vUv;\n"
|
||||
"out vec4 vertexColor;\n"
|
||||
"uniform sampler2D map;\n"
|
||||
"void main() {\n"
|
||||
" vertexColor = texture2D (map, vUv);\n"
|
||||
"}\n";
|
||||
static const char *vertex_shader_code_130 =
|
||||
"#version 130\n"
|
||||
"uniform sampler2D map;"
|
||||
"attribute vec2 position;\n"
|
||||
"attribute vec2 uv;\n"
|
||||
"varying vec2 vUv;\n"
|
||||
@@ -157,14 +175,21 @@ use_texture_2d_program (GdkGLContextPaintData *paint_data)
|
||||
" gl_Position = vec4(position, 0, 1);\n"
|
||||
" vUv = uv;\n"
|
||||
"}\n";
|
||||
static const char *fragment_shader_code =
|
||||
"#version 150\n"
|
||||
static const char *fragment_shader_code_130 =
|
||||
"#version 130\n"
|
||||
"varying vec2 vUv;\n"
|
||||
"uniform sampler2D map;\n"
|
||||
"void main() {\n"
|
||||
" gl_FragColor = texture2D (map, vUv);\n"
|
||||
"}\n";
|
||||
|
||||
const char *vertex_shader_code = paint_data->is_legacy
|
||||
? vertex_shader_code_130
|
||||
: vertex_shader_code_150;
|
||||
const char *fragment_shader_code = paint_data->is_legacy
|
||||
? fragment_shader_code_130
|
||||
: fragment_shader_code_150;
|
||||
|
||||
if (paint_data->texture_2d_quad_program.program == 0)
|
||||
make_program (&paint_data->texture_2d_quad_program, vertex_shader_code, fragment_shader_code);
|
||||
|
||||
@@ -178,9 +203,9 @@ use_texture_2d_program (GdkGLContextPaintData *paint_data)
|
||||
static void
|
||||
use_texture_rect_program (GdkGLContextPaintData *paint_data)
|
||||
{
|
||||
static const char *vertex_shader_code =
|
||||
static const char *vertex_shader_code_150 =
|
||||
"#version 150\n"
|
||||
"uniform sampler2DRect map;"
|
||||
"uniform sampler2DRect map;\n"
|
||||
"attribute vec2 position;\n"
|
||||
"attribute vec2 uv;\n"
|
||||
"varying vec2 vUv;\n"
|
||||
@@ -188,13 +213,37 @@ use_texture_rect_program (GdkGLContextPaintData *paint_data)
|
||||
" gl_Position = vec4(position, 0, 1);\n"
|
||||
" vUv = uv;\n"
|
||||
"}\n";
|
||||
static const char *fragment_shader_code =
|
||||
static const char *fragment_shader_code_150 =
|
||||
"#version 150\n"
|
||||
"varying vec2 vUv;\n"
|
||||
"uniform sampler2DRect map;\n"
|
||||
"void main() {\n"
|
||||
" gl_FragColor = texture2DRect (map, vUv);\n"
|
||||
"}\n";
|
||||
static const char *vertex_shader_code_130 =
|
||||
"#version 130\n"
|
||||
"uniform sampler2DRect map;\n"
|
||||
"attribute vec2 position;\n"
|
||||
"attribute vec2 uv;\n"
|
||||
"varying vec2 vUv;\n"
|
||||
"void main() {\n"
|
||||
" gl_Position = vec4(position, 0, 1);\n"
|
||||
" vUv = uv;\n"
|
||||
"}\n";
|
||||
static const char *fragment_shader_code_130 =
|
||||
"#version 130\n"
|
||||
"varying vec2 vUv;\n"
|
||||
"uniform sampler2DRect map;\n"
|
||||
"void main() {\n"
|
||||
" gl_FragColor = texture2DRect (map, vUv);\n"
|
||||
"}\n";
|
||||
|
||||
const char *vertex_shader_code = paint_data->is_legacy
|
||||
? vertex_shader_code_130
|
||||
: vertex_shader_code_150;
|
||||
const char *fragment_shader_code = paint_data->is_legacy
|
||||
? fragment_shader_code_130
|
||||
: fragment_shader_code_150;
|
||||
|
||||
if (paint_data->texture_rect_quad_program.program == 0)
|
||||
make_program (&paint_data->texture_rect_quad_program, vertex_shader_code, fragment_shader_code);
|
||||
|
||||
+50
-1
@@ -103,6 +103,7 @@ typedef struct {
|
||||
guint extensions_checked : 1;
|
||||
guint debug_enabled : 1;
|
||||
guint forward_compatible : 1;
|
||||
guint is_legacy : 1;
|
||||
|
||||
GdkGLContextPaintData *paint_data;
|
||||
} GdkGLContextPrivate;
|
||||
@@ -344,7 +345,10 @@ gdk_gl_context_get_paint_data (GdkGLContext *context)
|
||||
GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context);
|
||||
|
||||
if (priv->paint_data == NULL)
|
||||
priv->paint_data = g_new0 (GdkGLContextPaintData, 1);
|
||||
{
|
||||
priv->paint_data = g_new0 (GdkGLContextPaintData, 1);
|
||||
priv->paint_data->is_legacy = priv->is_legacy;
|
||||
}
|
||||
|
||||
return priv->paint_data;
|
||||
}
|
||||
@@ -554,6 +558,51 @@ gdk_gl_context_get_required_version (GdkGLContext *context,
|
||||
*minor = min;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_gl_context_is_legacy:
|
||||
* @context: a #GdkGLContext
|
||||
*
|
||||
* Whether the #GdkGLContext is in legacy mode or not.
|
||||
*
|
||||
* The #GdkGLContext must be realized before calling this function.
|
||||
*
|
||||
* When realizing a GL context, GDK will try to use the OpenGL 3.2 core
|
||||
* profile; this profile removes all the OpenGL API that was deprecated
|
||||
* prior to the 3.2 version of the specification. If the realization is
|
||||
* successful, this function will return %FALSE.
|
||||
*
|
||||
* If the underlying OpenGL implementation does not support core profiles,
|
||||
* GDK will fall back to a pre-3.2 compatibility profile, and this function
|
||||
* will return %TRUE.
|
||||
*
|
||||
* You can use the value returned by this function to decide which kind
|
||||
* of OpenGL API to use, or whether to do extension discovery, or what
|
||||
* kind of shader programs to load.
|
||||
*
|
||||
* Returns: %TRUE if the GL context is in legacy mode
|
||||
*
|
||||
* Since: 3.20
|
||||
*/
|
||||
gboolean
|
||||
gdk_gl_context_is_legacy (GdkGLContext *context)
|
||||
{
|
||||
GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context);
|
||||
|
||||
g_return_val_if_fail (GDK_IS_GL_CONTEXT (context), FALSE);
|
||||
g_return_val_if_fail (priv->realized, FALSE);
|
||||
|
||||
return priv->is_legacy;
|
||||
}
|
||||
|
||||
void
|
||||
gdk_gl_context_set_is_legacy (GdkGLContext *context,
|
||||
gboolean is_legacy)
|
||||
{
|
||||
GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context);
|
||||
|
||||
priv->is_legacy = !!is_legacy;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_gl_context_realize:
|
||||
* @context: a #GdkGLContext
|
||||
|
||||
@@ -52,6 +52,8 @@ GDK_AVAILABLE_IN_3_16
|
||||
void gdk_gl_context_get_version (GdkGLContext *context,
|
||||
int *major,
|
||||
int *minor);
|
||||
GDK_AVAILABLE_IN_3_20
|
||||
gboolean gdk_gl_context_is_legacy (GdkGLContext *context);
|
||||
|
||||
GDK_AVAILABLE_IN_3_16
|
||||
void gdk_gl_context_set_required_version (GdkGLContext *context,
|
||||
|
||||
@@ -67,8 +67,13 @@ typedef struct {
|
||||
GdkGLContextProgram texture_rect_quad_program;
|
||||
|
||||
GdkGLContextProgram *current_program;
|
||||
|
||||
guint is_legacy : 1;
|
||||
} GdkGLContextPaintData;
|
||||
|
||||
void gdk_gl_context_set_is_legacy (GdkGLContext *context,
|
||||
gboolean is_legacy);
|
||||
|
||||
void gdk_gl_context_upload_texture (GdkGLContext *context,
|
||||
cairo_surface_t *image_surface,
|
||||
int width,
|
||||
|
||||
+2
-1
@@ -99,7 +99,8 @@ typedef enum {
|
||||
GDK_GL_ALWAYS = 1 << 1,
|
||||
GDK_GL_SOFTWARE_DRAW_GL = 1 << 2,
|
||||
GDK_GL_SOFTWARE_DRAW_SURFACE = 1 << 3,
|
||||
GDK_GL_TEXTURE_RECTANGLE = 1 << 4
|
||||
GDK_GL_TEXTURE_RECTANGLE = 1 << 4,
|
||||
GDK_GL_LEGACY = 1 << 5
|
||||
} GdkGLFlags;
|
||||
|
||||
extern GList *_gdk_default_filters;
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#include "gdkkeys.h"
|
||||
#include "gdktypes.h"
|
||||
|
||||
#include <locale.h>
|
||||
|
||||
/* Thanks to Markus G. Kuhn <mkuhn@acm.org> for the ksysym<->Unicode
|
||||
* mapping functions, from the xterm sources.
|
||||
@@ -872,6 +873,23 @@ static const struct {
|
||||
#endif
|
||||
};
|
||||
|
||||
static gunichar
|
||||
get_decimal_point (void)
|
||||
{
|
||||
struct lconv *locale_data;
|
||||
const gchar *decimal_point;
|
||||
gunichar ret;
|
||||
|
||||
locale_data = localeconv ();
|
||||
decimal_point = locale_data->decimal_point;
|
||||
|
||||
ret = g_utf8_get_char_validated (decimal_point, -1);
|
||||
if (ret != (gunichar)-2 && ret != (gunichar)-1)
|
||||
return ret;
|
||||
|
||||
return (gunichar) '.';
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_keyval_to_unicode:
|
||||
* @keyval: a GDK key symbol
|
||||
@@ -899,6 +917,9 @@ gdk_keyval_to_unicode (guint keyval)
|
||||
if ((keyval & 0xff000000) == 0x01000000)
|
||||
return keyval & 0x00ffffff;
|
||||
|
||||
if (keyval == 0xffae)
|
||||
return (guint32) get_decimal_point ();
|
||||
|
||||
/* binary search in table */
|
||||
while (max >= min) {
|
||||
mid = (min + max) / 2;
|
||||
|
||||
@@ -47,8 +47,8 @@
|
||||
* @window: Source window
|
||||
* @src_x: Source X coordinate within @window
|
||||
* @src_y: Source Y coordinate within @window
|
||||
* @width: Width in pixels of region to get
|
||||
* @height: Height in pixels of region to get
|
||||
* @width: Width in logical pixels of region to get
|
||||
* @height: Height in logical pixels of region to get
|
||||
*
|
||||
* Transfers image data from a #GdkWindow and converts it to an RGB(A)
|
||||
* representation inside a #GdkPixbuf. In other words, copies
|
||||
@@ -88,10 +88,13 @@ gdk_pixbuf_get_from_window (GdkWindow *src,
|
||||
{
|
||||
cairo_surface_t *surface;
|
||||
GdkPixbuf *dest;
|
||||
gint scale;
|
||||
|
||||
g_return_val_if_fail (GDK_IS_WINDOW (src), NULL);
|
||||
g_return_val_if_fail (gdk_window_is_viewable (src), NULL);
|
||||
|
||||
scale = gdk_window_get_scale_factor (src);
|
||||
|
||||
surface = _gdk_window_ref_cairo_surface (src);
|
||||
|
||||
/* We do not know what happened to this surface outside of GDK.
|
||||
@@ -102,8 +105,8 @@ gdk_pixbuf_get_from_window (GdkWindow *src,
|
||||
cairo_surface_mark_dirty (surface);
|
||||
|
||||
dest = gdk_pixbuf_get_from_surface (surface,
|
||||
src_x, src_y,
|
||||
width, height);
|
||||
scale * src_x, scale * src_y,
|
||||
scale * width, scale * height);
|
||||
cairo_surface_destroy (surface);
|
||||
|
||||
return dest;
|
||||
@@ -134,11 +137,16 @@ gdk_cairo_surface_coerce_to_image (cairo_surface_t *surface,
|
||||
{
|
||||
cairo_surface_t *copy;
|
||||
cairo_t *cr;
|
||||
double sx, sy;
|
||||
|
||||
cairo_surface_get_device_scale (surface, &sx, &sy);
|
||||
|
||||
copy = cairo_image_surface_create (gdk_cairo_format_for_content (content),
|
||||
width,
|
||||
height);
|
||||
|
||||
cairo_surface_set_device_scale (copy, sx, sy);
|
||||
|
||||
cr = cairo_create (copy);
|
||||
cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
|
||||
cairo_set_source_surface (cr, surface, -src_x, -src_y);
|
||||
|
||||
@@ -133,6 +133,27 @@ gdk_rectangle_intersect (const GdkRectangle *src1,
|
||||
return return_val;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_rectangle_equal:
|
||||
* @rect1: a #GdkRectangle
|
||||
* @rect2: a #GdkRectangle
|
||||
*
|
||||
* Checks if the two given rectangles are equal.
|
||||
*
|
||||
* Returns: %TRUE if the rectangles are equal.
|
||||
*
|
||||
* Since: 3.20
|
||||
*/
|
||||
gboolean
|
||||
gdk_rectangle_equal (const GdkRectangle *rect1,
|
||||
const GdkRectangle *rect2)
|
||||
{
|
||||
return rect1->x == rect2->x
|
||||
&& rect1->y == rect2->y
|
||||
&& rect1->width == rect2->width
|
||||
&& rect1->height == rect2->height;
|
||||
}
|
||||
|
||||
static GdkRectangle *
|
||||
gdk_rectangle_copy (const GdkRectangle *rectangle)
|
||||
{
|
||||
|
||||
@@ -45,6 +45,10 @@ void gdk_rectangle_union (const GdkRectangle *src1,
|
||||
const GdkRectangle *src2,
|
||||
GdkRectangle *dest);
|
||||
|
||||
GDK_AVAILABLE_IN_3_20
|
||||
gboolean gdk_rectangle_equal (const GdkRectangle *rect1,
|
||||
const GdkRectangle *rect2);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GType gdk_rectangle_get_type (void) G_GNUC_CONST;
|
||||
|
||||
|
||||
+1
-1
@@ -366,7 +366,7 @@ gdk_rgba_to_string (const GdkRGBA *rgba)
|
||||
{
|
||||
gchar alpha[G_ASCII_DTOSTR_BUF_SIZE];
|
||||
|
||||
g_ascii_dtostr (alpha, G_ASCII_DTOSTR_BUF_SIZE, CLAMP (rgba->alpha, 0, 1));
|
||||
g_ascii_formatd (alpha, G_ASCII_DTOSTR_BUF_SIZE, "%g", CLAMP (rgba->alpha, 0, 1));
|
||||
|
||||
return g_strdup_printf ("rgba(%d,%d,%d,%s)",
|
||||
(int)(0.5 + CLAMP (rgba->red, 0., 1.) * 255.),
|
||||
|
||||
+1
-1
@@ -1095,7 +1095,7 @@ gdk_screen_get_setting (GdkScreen *screen,
|
||||
* on very high density outputs this can be a higher value (often 2).
|
||||
*
|
||||
* This can be used if you want to create pixel based data for a
|
||||
* particula monitor, but most of the time you’re drawing to a window
|
||||
* particular monitor, but most of the time you’re drawing to a window
|
||||
* where it is better to use gdk_window_get_scale_factor() instead.
|
||||
*
|
||||
* Since: 3.10
|
||||
|
||||
@@ -152,6 +152,16 @@
|
||||
*/
|
||||
#define GDK_VERSION_3_18 (G_ENCODE_VERSION (3, 18))
|
||||
|
||||
/**
|
||||
* GDK_VERSION_3_20:
|
||||
*
|
||||
* A macro that evaluates to the 3.20 version of GDK, in a format
|
||||
* that can be used by the C pre-processor.
|
||||
*
|
||||
* Since: 3.18
|
||||
*/
|
||||
#define GDK_VERSION_3_20 (G_ENCODE_VERSION (3, 20))
|
||||
|
||||
/* evaluates to the current stable version; for development cycles,
|
||||
* this means the next stable target
|
||||
*/
|
||||
@@ -364,5 +374,19 @@
|
||||
# define GDK_AVAILABLE_IN_3_18 _GDK_EXTERN
|
||||
#endif
|
||||
|
||||
#if GDK_VERSION_MIN_REQUIRED >= GDK_VERSION_3_20
|
||||
# define GDK_DEPRECATED_IN_3_20 GDK_DEPRECATED
|
||||
# define GDK_DEPRECATED_IN_3_20_FOR(f) GDK_DEPRECATED_FOR(f)
|
||||
#else
|
||||
# define GDK_DEPRECATED_IN_3_20 _GDK_EXTERN
|
||||
# define GDK_DEPRECATED_IN_3_20_FOR(f) _GDK_EXTERN
|
||||
#endif
|
||||
|
||||
#if GDK_VERSION_MAX_ALLOWED < GDK_VERSION_3_20
|
||||
# define GDK_AVAILABLE_IN_3_20 GDK_UNAVAILABLE(3, 20)
|
||||
#else
|
||||
# define GDK_AVAILABLE_IN_3_20 _GDK_EXTERN
|
||||
#endif
|
||||
|
||||
#endif /* __GDK_VERSION_MACROS_H__ */
|
||||
|
||||
|
||||
+3
-3
@@ -7712,8 +7712,8 @@ find_common_ancestor (GdkWindow *win1,
|
||||
while (list1 && list2 && (list1->data == list2->data))
|
||||
{
|
||||
tmp = list1->data;
|
||||
list1 = g_list_next (list1);
|
||||
list2 = g_list_next (list2);
|
||||
list1 = list1->next;
|
||||
list2 = list2->next;
|
||||
}
|
||||
g_list_free (path1);
|
||||
g_list_free (path2);
|
||||
@@ -8083,7 +8083,7 @@ _gdk_synthesize_crossing_events (GdkDisplay *display,
|
||||
while (list)
|
||||
{
|
||||
win = list->data;
|
||||
list = g_list_next (list);
|
||||
list = list->next;
|
||||
if (list)
|
||||
next = list->data;
|
||||
else
|
||||
|
||||
+60
-1
@@ -91,6 +91,63 @@ _gdk_mir_print_key_event (const MirInputEvent *event)
|
||||
g_printerr (" Event Time %lli\n", (long long int) mir_input_event_get_event_time (event));
|
||||
}
|
||||
|
||||
static void
|
||||
_gdk_mir_print_touch_event (const MirInputEvent *event)
|
||||
{
|
||||
const MirTouchEvent *touch_event = mir_input_event_get_touch_event (event);
|
||||
guint i;
|
||||
guint n;
|
||||
|
||||
if (!touch_event)
|
||||
return;
|
||||
|
||||
g_printerr ("TOUCH\n");
|
||||
g_printerr (" Device %lld\n", (long long int) mir_input_event_get_device_id (event));
|
||||
g_printerr (" Cookie %lu %lu\n", mir_touch_event_get_cookie (touch_event).timestamp, mir_touch_event_get_cookie (touch_event).mac);
|
||||
g_printerr (" Event Time %lld\n", (long long int) mir_input_event_get_event_time (event));
|
||||
_gdk_mir_print_modifiers (mir_touch_event_modifiers (touch_event));
|
||||
n = mir_touch_event_point_count (touch_event);
|
||||
|
||||
for (i = 0; i < n; i++)
|
||||
{
|
||||
g_printerr (" [%u] (%u/%u) ", mir_touch_event_id (touch_event, i), i + 1, n);
|
||||
switch (mir_touch_event_action (touch_event, i))
|
||||
{
|
||||
case mir_touch_action_down:
|
||||
g_printerr ("Down");
|
||||
break;
|
||||
case mir_touch_action_up:
|
||||
g_printerr ("Up");
|
||||
break;
|
||||
case mir_touch_action_change:
|
||||
g_printerr ("Change");
|
||||
break;
|
||||
default:
|
||||
g_printerr ("%u", mir_touch_event_action (touch_event, i));
|
||||
break;
|
||||
}
|
||||
switch (mir_touch_event_tooltype (touch_event, i))
|
||||
{
|
||||
case mir_touch_tooltype_unknown:
|
||||
g_printerr (" ? ");
|
||||
break;
|
||||
case mir_touch_tooltype_finger:
|
||||
g_printerr (" finger ");
|
||||
break;
|
||||
case mir_touch_tooltype_stylus:
|
||||
g_printerr (" stylus ");
|
||||
break;
|
||||
}
|
||||
g_printerr ("\n x: %f y: %f P: %f A: %f B: %f d: %f\n",
|
||||
mir_touch_event_axis_value (touch_event, i, mir_touch_axis_x),
|
||||
mir_touch_event_axis_value (touch_event, i, mir_touch_axis_y),
|
||||
mir_touch_event_axis_value (touch_event, i, mir_touch_axis_pressure),
|
||||
mir_touch_event_axis_value (touch_event, i, mir_touch_axis_touch_major),
|
||||
mir_touch_event_axis_value (touch_event, i, mir_touch_axis_touch_minor),
|
||||
mir_touch_event_axis_value (touch_event, i, mir_touch_axis_size));
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
_gdk_mir_print_motion_event (const MirInputEvent *event)
|
||||
{
|
||||
@@ -138,6 +195,8 @@ _gdk_mir_print_motion_event (const MirInputEvent *event)
|
||||
g_printerr ("\n");
|
||||
g_printerr (" Offset (%f, %f)\n", mir_pointer_event_axis_value (pointer_event, mir_pointer_axis_x),
|
||||
mir_pointer_event_axis_value (pointer_event, mir_pointer_axis_y));
|
||||
g_printerr (" Scroll (%f, %f)\n", mir_pointer_event_axis_value (pointer_event, mir_pointer_axis_hscroll),
|
||||
mir_pointer_event_axis_value (pointer_event, mir_pointer_axis_vscroll));
|
||||
g_printerr (" Event Time %lli\n", (long long int) mir_input_event_get_event_time (event));
|
||||
}
|
||||
|
||||
@@ -197,7 +256,7 @@ _gdk_mir_print_event (const MirEvent *event)
|
||||
_gdk_mir_print_key_event (mir_event_get_input_event (event));
|
||||
break;
|
||||
case mir_input_event_type_touch:
|
||||
_gdk_mir_print_motion_event (mir_event_get_input_event (event));
|
||||
_gdk_mir_print_touch_event (mir_event_get_input_event (event));
|
||||
break;
|
||||
case mir_input_event_type_pointer:
|
||||
_gdk_mir_print_motion_event (mir_event_get_input_event (event));
|
||||
|
||||
+14
-9
@@ -539,12 +539,19 @@ get_pixel_formats (MirConnection *connection,
|
||||
{
|
||||
*sw_pixel_format = mir_pixel_format_invalid;
|
||||
|
||||
for (i = 0; i < n_formats; i++)
|
||||
for (i = 0; i < n_formats && *sw_pixel_format == mir_pixel_format_invalid; i++)
|
||||
{
|
||||
if (formats[i] == mir_pixel_format_argb_8888)
|
||||
switch (formats[i])
|
||||
{
|
||||
case mir_pixel_format_abgr_8888:
|
||||
case mir_pixel_format_xbgr_8888:
|
||||
case mir_pixel_format_argb_8888:
|
||||
case mir_pixel_format_xrgb_8888:
|
||||
case mir_pixel_format_rgb_565:
|
||||
*sw_pixel_format = formats[i];
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -553,22 +560,20 @@ get_pixel_formats (MirConnection *connection,
|
||||
{
|
||||
*hw_pixel_format = mir_pixel_format_invalid;
|
||||
|
||||
for (i = 0; i < n_formats; i++)
|
||||
for (i = 0; i < n_formats && *hw_pixel_format == mir_pixel_format_invalid; i++)
|
||||
{
|
||||
switch (formats[i])
|
||||
{
|
||||
{
|
||||
case mir_pixel_format_abgr_8888:
|
||||
case mir_pixel_format_xbgr_8888:
|
||||
case mir_pixel_format_argb_8888:
|
||||
case mir_pixel_format_xrgb_8888:
|
||||
case mir_pixel_format_rgb_565:
|
||||
*hw_pixel_format = formats[i];
|
||||
break;
|
||||
default:
|
||||
continue;
|
||||
}
|
||||
|
||||
if (*hw_pixel_format != mir_pixel_format_invalid)
|
||||
break;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ send_event (GdkWindow *window, GdkDevice *device, GdkEvent *event)
|
||||
|
||||
gdk_event_set_device (event, device);
|
||||
gdk_event_set_source_device (event, device);
|
||||
gdk_event_set_screen (event, gdk_display_get_screen (gdk_window_get_display (window), 0));
|
||||
gdk_event_set_screen (event, gdk_display_get_default_screen (gdk_window_get_display (window)));
|
||||
event->any.window = g_object_ref (window);
|
||||
|
||||
display = gdk_window_get_display (window);
|
||||
@@ -298,6 +298,45 @@ handle_key_event (GdkWindow *window, const MirInputEvent *event)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
handle_touch_event (GdkWindow *window,
|
||||
const MirTouchEvent *mir_touch_event)
|
||||
{
|
||||
const MirInputEvent *mir_input_event = mir_touch_event_input_event (mir_touch_event);
|
||||
guint n = mir_touch_event_point_count (mir_touch_event);
|
||||
GdkEvent *gdk_event;
|
||||
guint i;
|
||||
|
||||
for (i = 0; i < n; i++)
|
||||
{
|
||||
switch (mir_touch_event_action (mir_touch_event, i))
|
||||
{
|
||||
case mir_touch_action_up:
|
||||
gdk_event = gdk_event_new (GDK_TOUCH_END);
|
||||
break;
|
||||
case mir_touch_action_down:
|
||||
gdk_event = gdk_event_new (GDK_TOUCH_BEGIN);
|
||||
break;
|
||||
case mir_touch_action_change:
|
||||
gdk_event = gdk_event_new (GDK_TOUCH_UPDATE);
|
||||
break;
|
||||
}
|
||||
|
||||
gdk_event->touch.window = window;
|
||||
gdk_event->touch.sequence = GINT_TO_POINTER (mir_touch_event_id (mir_touch_event, i));
|
||||
gdk_event->touch.time = mir_input_event_get_event_time (mir_input_event);
|
||||
gdk_event->touch.state = get_modifier_state (mir_touch_event_modifiers (mir_touch_event), 0);
|
||||
gdk_event->touch.x = mir_touch_event_axis_value (mir_touch_event, i, mir_touch_axis_x);
|
||||
gdk_event->touch.y = mir_touch_event_axis_value (mir_touch_event, i, mir_touch_axis_y);
|
||||
gdk_event->touch.x_root = mir_touch_event_axis_value (mir_touch_event, i, mir_touch_axis_x);
|
||||
gdk_event->touch.y_root = mir_touch_event_axis_value (mir_touch_event, i, mir_touch_axis_y);
|
||||
gdk_event->touch.emulating_pointer = TRUE;
|
||||
_gdk_event_set_pointer_emulated (gdk_event, TRUE);
|
||||
|
||||
send_event (window, get_pointer (window), gdk_event);
|
||||
}
|
||||
}
|
||||
|
||||
static guint
|
||||
get_button_state (const MirPointerEvent *event)
|
||||
{
|
||||
@@ -515,7 +554,7 @@ gdk_mir_event_source_queue_event (GdkDisplay *display,
|
||||
handle_key_event (window, input_event);
|
||||
break;
|
||||
case mir_input_event_type_touch:
|
||||
handle_motion_event (window, input_event);
|
||||
handle_touch_event (window, mir_input_event_get_touch_event (input_event));
|
||||
break;
|
||||
case mir_input_event_type_pointer:
|
||||
handle_motion_event (window, input_event);
|
||||
|
||||
@@ -280,12 +280,12 @@ send_event (GdkWindow *window, GdkDevice *device, GdkEvent *event)
|
||||
GdkDisplay *display;
|
||||
GList *node;
|
||||
|
||||
display = gdk_window_get_display (window);
|
||||
gdk_event_set_device (event, device);
|
||||
gdk_event_set_source_device (event, device);
|
||||
gdk_event_set_screen (event, gdk_display_get_screen (gdk_window_get_display (window), 0));
|
||||
gdk_event_set_screen (event, gdk_display_get_default_screen (display));
|
||||
event->any.window = g_object_ref (window);
|
||||
|
||||
display = gdk_window_get_display (window);
|
||||
node = _gdk_event_queue_append (display, event);
|
||||
_gdk_windowing_got_event (display, node, event, _gdk_display_get_next_serial (display));
|
||||
}
|
||||
@@ -423,7 +423,42 @@ gdk_mir_window_impl_ref_cairo_surface (GdkWindow *window)
|
||||
ensure_surface (window);
|
||||
|
||||
mir_buffer_stream_get_graphics_region (mir_surface_get_buffer_stream (impl->surface), ®ion);
|
||||
g_assert (region.pixel_format == mir_pixel_format_argb_8888);
|
||||
|
||||
switch (region.pixel_format)
|
||||
{
|
||||
case mir_pixel_format_abgr_8888:
|
||||
g_warning ("pixel format ABGR 8888 not supported, using ARGB 8888");
|
||||
pixel_format = CAIRO_FORMAT_ARGB32;
|
||||
break;
|
||||
case mir_pixel_format_xbgr_8888:
|
||||
g_warning ("pixel format XBGR 8888 not supported, using XRGB 8888");
|
||||
pixel_format = CAIRO_FORMAT_RGB24;
|
||||
break;
|
||||
case mir_pixel_format_argb_8888:
|
||||
pixel_format = CAIRO_FORMAT_ARGB32;
|
||||
break;
|
||||
case mir_pixel_format_xrgb_8888:
|
||||
pixel_format = CAIRO_FORMAT_RGB24;
|
||||
break;
|
||||
case mir_pixel_format_bgr_888:
|
||||
g_error ("pixel format BGR 888 not supported");
|
||||
break;
|
||||
case mir_pixel_format_rgb_888:
|
||||
g_error ("pixel format RGB 888 not supported");
|
||||
break;
|
||||
case mir_pixel_format_rgb_565:
|
||||
pixel_format = CAIRO_FORMAT_RGB16_565;
|
||||
break;
|
||||
case mir_pixel_format_rgba_5551:
|
||||
g_error ("pixel format RGBA 5551 not supported");
|
||||
break;
|
||||
case mir_pixel_format_rgba_4444:
|
||||
g_error ("pixel format RGBA 4444 not supported");
|
||||
break;
|
||||
default:
|
||||
g_error ("unknown pixel format");
|
||||
break;
|
||||
}
|
||||
|
||||
cairo_surface = cairo_image_surface_create_for_data ((unsigned char *) region.vaddr,
|
||||
pixel_format,
|
||||
|
||||
@@ -300,7 +300,7 @@ _gdk_quartz_display_get_cursor_for_surface (GdkDisplay *display,
|
||||
}
|
||||
|
||||
#define CUSTOM_CURSOR_CTOR(name, id) \
|
||||
+ (instancetype)name \
|
||||
+ (gdkCoreCursor *)name \
|
||||
{ \
|
||||
gdkCoreCursor *obj; \
|
||||
obj = [self new]; \
|
||||
|
||||
@@ -881,7 +881,7 @@ pointer_handle_enter (void *data,
|
||||
event->crossing.subwindow = NULL;
|
||||
event->crossing.time = (guint32)(g_get_monotonic_time () / 1000);
|
||||
event->crossing.mode = GDK_CROSSING_NORMAL;
|
||||
event->crossing.detail = GDK_NOTIFY_ANCESTOR;
|
||||
event->crossing.detail = GDK_NOTIFY_NONLINEAR;
|
||||
event->crossing.focus = TRUE;
|
||||
event->crossing.state = 0;
|
||||
|
||||
@@ -928,7 +928,7 @@ pointer_handle_leave (void *data,
|
||||
event->crossing.subwindow = NULL;
|
||||
event->crossing.time = (guint32)(g_get_monotonic_time () / 1000);
|
||||
event->crossing.mode = GDK_CROSSING_NORMAL;
|
||||
event->crossing.detail = GDK_NOTIFY_ANCESTOR;
|
||||
event->crossing.detail = GDK_NOTIFY_NONLINEAR;
|
||||
event->crossing.focus = TRUE;
|
||||
event->crossing.state = 0;
|
||||
|
||||
@@ -1191,15 +1191,14 @@ keyboard_handle_leave (void *data,
|
||||
GdkEvent *event;
|
||||
GdkWaylandDisplay *display = GDK_WAYLAND_DISPLAY (device->display);
|
||||
|
||||
if (!surface)
|
||||
return;
|
||||
|
||||
if (!GDK_IS_WINDOW (wl_surface_get_user_data (surface)))
|
||||
return;
|
||||
|
||||
if (!device->keyboard_focus)
|
||||
return;
|
||||
|
||||
/* gdk_window_is_destroyed() might already return TRUE for
|
||||
* device->keyboard_focus here, which would happen if we destroyed the
|
||||
* window before loosing keyboard focus.
|
||||
*/
|
||||
|
||||
stop_key_repeat (device);
|
||||
|
||||
_gdk_wayland_display_update_serial (display, serial);
|
||||
|
||||
@@ -114,12 +114,14 @@ gdk_wayland_gl_context_realize (GdkGLContext *context,
|
||||
EGLContext ctx;
|
||||
EGLint context_attribs[N_EGL_ATTRS];
|
||||
int major, minor, flags;
|
||||
gboolean debug_bit, forward_bit;
|
||||
gboolean debug_bit, forward_bit, legacy_bit;
|
||||
int i = 0;
|
||||
|
||||
gdk_gl_context_get_required_version (context, &major, &minor);
|
||||
debug_bit = gdk_gl_context_get_debug_enabled (context);
|
||||
forward_bit = gdk_gl_context_get_forward_compatible (context);
|
||||
legacy_bit = (_gdk_gl_flags & GDK_GL_LEGACY) != 0 ||
|
||||
(share != NULL && gdk_gl_context_is_legacy (share));
|
||||
|
||||
flags = 0;
|
||||
|
||||
@@ -128,15 +130,17 @@ gdk_wayland_gl_context_realize (GdkGLContext *context,
|
||||
if (forward_bit)
|
||||
flags |= EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR;
|
||||
|
||||
/* We want a core profile */
|
||||
/* We want a core profile, unless in legacy mode */
|
||||
context_attribs[i++] = EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR;
|
||||
context_attribs[i++] = EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR;
|
||||
context_attribs[i++] = legacy_bit
|
||||
? EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR
|
||||
: EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR;
|
||||
|
||||
/* Specify the version */
|
||||
context_attribs[i++] = EGL_CONTEXT_MAJOR_VERSION_KHR;
|
||||
context_attribs[i++] = major;
|
||||
context_attribs[i++] = legacy_bit ? 3 : major;
|
||||
context_attribs[i++] = EGL_CONTEXT_MINOR_VERSION_KHR;
|
||||
context_attribs[i++] = minor;
|
||||
context_attribs[i++] = legacy_bit ? 0 : minor;
|
||||
|
||||
/* Specify the flags */
|
||||
context_attribs[i++] = EGL_CONTEXT_FLAGS_KHR;
|
||||
@@ -150,6 +154,25 @@ gdk_wayland_gl_context_realize (GdkGLContext *context,
|
||||
share != NULL ? GDK_WAYLAND_GL_CONTEXT (share)->egl_context
|
||||
: EGL_NO_CONTEXT,
|
||||
context_attribs);
|
||||
|
||||
/* If context creation failed without the legacy bit, let's try again with it */
|
||||
if (ctx == NULL && !legacy_bit)
|
||||
{
|
||||
/* Ensure that re-ordering does not break the offsets */
|
||||
g_assert (context_attribs[0] == EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR);
|
||||
context_attribs[1] = EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR;
|
||||
context_attribs[3] = 3;
|
||||
context_attribs[5] = 0;
|
||||
|
||||
legacy_bit = TRUE;
|
||||
|
||||
ctx = eglCreateContext (display_wayland->egl_display,
|
||||
context_wayland->egl_config,
|
||||
share != NULL ? GDK_WAYLAND_GL_CONTEXT (share)->egl_context
|
||||
: EGL_NO_CONTEXT,
|
||||
context_attribs);
|
||||
}
|
||||
|
||||
if (ctx == NULL)
|
||||
{
|
||||
g_set_error_literal (error, GDK_GL_ERROR,
|
||||
@@ -162,6 +185,8 @@ gdk_wayland_gl_context_realize (GdkGLContext *context,
|
||||
|
||||
context_wayland->egl_context = ctx;
|
||||
|
||||
gdk_gl_context_set_is_legacy (context, legacy_bit);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
+125
-30
@@ -888,9 +888,6 @@ gdk_wayland_window_create_subsurface (GdkWindow *window)
|
||||
GdkWindowImplWayland *impl, *parent_impl = NULL;
|
||||
GdkWaylandDisplay *display_wayland;
|
||||
|
||||
if (GDK_WINDOW_TYPE (window) != GDK_WINDOW_SUBSURFACE)
|
||||
return;
|
||||
|
||||
impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
|
||||
if (!impl->surface)
|
||||
@@ -1209,13 +1206,88 @@ find_grab_input_seat (GdkWindow *window, GdkWindow *transient_for)
|
||||
static gboolean
|
||||
should_be_mapped (GdkWindow *window)
|
||||
{
|
||||
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
|
||||
/* Don't map crazy temp that GTK+ uses for internal X11 shenanigans. */
|
||||
if (window->window_type == GDK_WINDOW_TEMP && window->x < 0 && window->y < 0)
|
||||
return FALSE;
|
||||
|
||||
if (impl->hint == GDK_WINDOW_TYPE_HINT_DND)
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
should_map_as_subsurface (GdkWindow *window)
|
||||
{
|
||||
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
|
||||
if (GDK_WINDOW_TYPE (window) == GDK_WINDOW_SUBSURFACE)
|
||||
return TRUE;
|
||||
|
||||
switch (impl->hint)
|
||||
{
|
||||
case GDK_WINDOW_TYPE_HINT_TOOLTIP:
|
||||
return TRUE;
|
||||
|
||||
case GDK_WINDOW_TYPE_HINT_UTILITY:
|
||||
if (GDK_WINDOW_TYPE (window) == GDK_WINDOW_TEMP)
|
||||
return TRUE;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
should_map_as_popup (GdkWindow *window)
|
||||
{
|
||||
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
|
||||
switch (impl->hint)
|
||||
{
|
||||
case GDK_WINDOW_TYPE_HINT_POPUP_MENU:
|
||||
case GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU:
|
||||
case GDK_WINDOW_TYPE_HINT_COMBO:
|
||||
return TRUE;
|
||||
|
||||
case GDK_WINDOW_TYPE_HINT_UTILITY:
|
||||
if (GDK_WINDOW_TYPE (window) != GDK_WINDOW_TEMP)
|
||||
return TRUE;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Get the window that can be used as a parent for a popup, i.e. a xdg_surface
|
||||
* or xdg_popup. If the window is not, traverse up the transiency parents until
|
||||
* we find one.
|
||||
*/
|
||||
static GdkWindow *
|
||||
get_popup_parent (GdkWindow *window)
|
||||
{
|
||||
do
|
||||
{
|
||||
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
|
||||
if (impl->xdg_popup || impl->xdg_surface)
|
||||
return window;
|
||||
|
||||
window = impl->transient_for;
|
||||
}
|
||||
while (window);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_wayland_window_map (GdkWindow *window)
|
||||
{
|
||||
@@ -1225,8 +1297,22 @@ gdk_wayland_window_map (GdkWindow *window)
|
||||
if (!should_be_mapped (window))
|
||||
return;
|
||||
|
||||
if (!impl->mapped && !impl->use_custom_surface)
|
||||
if (impl->mapped || impl->use_custom_surface)
|
||||
return;
|
||||
|
||||
if (should_map_as_subsurface (window))
|
||||
{
|
||||
if (impl->transient_for)
|
||||
gdk_wayland_window_create_subsurface (window);
|
||||
else
|
||||
g_warning ("Couldn't map as window %p as susburface yet because it doesn't have a parent",
|
||||
window);
|
||||
}
|
||||
else if (should_map_as_popup (window))
|
||||
{
|
||||
gboolean create_fallback = FALSE;
|
||||
struct wl_seat *grab_input_seat;
|
||||
|
||||
/* Popup menus can appear without a transient parent, which means they
|
||||
* cannot be positioned properly on Wayland. This attempts to guess the
|
||||
* surface they should be positioned with by finding the surface beneath
|
||||
@@ -1266,6 +1352,8 @@ gdk_wayland_window_map (GdkWindow *window)
|
||||
|
||||
if (transient_for)
|
||||
transient_for = gdk_window_get_toplevel (transient_for);
|
||||
if (transient_for)
|
||||
transient_for = get_popup_parent (transient_for);
|
||||
|
||||
/* If the position was not explicitly set, start the popup at the
|
||||
* position of the device that holds the grab.
|
||||
@@ -1276,31 +1364,45 @@ gdk_wayland_window_map (GdkWindow *window)
|
||||
&window->x, &window->y, NULL);
|
||||
}
|
||||
else
|
||||
transient_for = impl->transient_for;
|
||||
transient_for = get_popup_parent (impl->transient_for);
|
||||
|
||||
if (transient_for &&
|
||||
GDK_WINDOW_TYPE (window) != GDK_WINDOW_SUBSURFACE)
|
||||
if (!transient_for)
|
||||
{
|
||||
struct wl_seat *grab_input_seat = find_grab_input_seat (window, transient_for);
|
||||
if (grab_input_seat &&
|
||||
(impl->hint == GDK_WINDOW_TYPE_HINT_POPUP_MENU ||
|
||||
impl->hint == GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU ||
|
||||
impl->hint == GDK_WINDOW_TYPE_HINT_COMBO))
|
||||
g_warning ("Couldn't map as window %p as popup because it doesn't have a parent",
|
||||
window);
|
||||
|
||||
create_fallback = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
grab_input_seat = find_grab_input_seat (window, transient_for);
|
||||
|
||||
if (!grab_input_seat)
|
||||
{
|
||||
gdk_wayland_window_create_xdg_popup (window,
|
||||
transient_for,
|
||||
grab_input_seat);
|
||||
goto mapped;
|
||||
g_warning ("Couldn't map window %p as popup because no grabbed seat found",
|
||||
window);
|
||||
|
||||
create_fallback = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if (impl->hint != GDK_WINDOW_TYPE_HINT_DND &&
|
||||
GDK_WINDOW_TYPE (window) != GDK_WINDOW_SUBSURFACE)
|
||||
gdk_wayland_window_create_xdg_surface (window);
|
||||
|
||||
mapped:
|
||||
impl->mapped = TRUE;
|
||||
if (!create_fallback)
|
||||
{
|
||||
gdk_wayland_window_create_xdg_popup (window,
|
||||
transient_for,
|
||||
grab_input_seat);
|
||||
}
|
||||
else
|
||||
{
|
||||
gdk_wayland_window_create_xdg_surface (window);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
gdk_wayland_window_create_xdg_surface (window);
|
||||
}
|
||||
|
||||
impl->mapped = TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1312,9 +1414,6 @@ gdk_wayland_window_show (GdkWindow *window,
|
||||
if (!impl->surface)
|
||||
gdk_wayland_window_create_surface (window);
|
||||
|
||||
if (GDK_WINDOW_TYPE (window) == GDK_WINDOW_SUBSURFACE)
|
||||
gdk_wayland_window_create_subsurface (window);
|
||||
|
||||
gdk_wayland_window_map (window);
|
||||
|
||||
_gdk_make_event (window, GDK_MAP, NULL, FALSE);
|
||||
@@ -1846,7 +1945,7 @@ gdk_wayland_window_set_transient_for (GdkWindow *window,
|
||||
|
||||
gdk_wayland_window_sync_parent (window);
|
||||
|
||||
if (GDK_WINDOW_TYPE (window) == GDK_WINDOW_SUBSURFACE &&
|
||||
if (should_map_as_subsurface (window) &&
|
||||
parent && gdk_window_is_visible (window))
|
||||
gdk_wayland_window_create_subsurface (window);
|
||||
}
|
||||
@@ -2288,10 +2387,6 @@ gdk_wayland_window_set_shadow_width (GdkWindow *window,
|
||||
if (GDK_WINDOW_DESTROYED (window))
|
||||
return;
|
||||
|
||||
if (left == impl->margin_left && right == impl->margin_right &&
|
||||
top == impl->margin_top && bottom == impl->margin_bottom)
|
||||
return;
|
||||
|
||||
/* Reconfigure window to keep the same window geometry */
|
||||
new_width = window->width -
|
||||
(impl->margin_left + impl->margin_right) + (left + right);
|
||||
|
||||
@@ -266,10 +266,9 @@ gdk_device_virtual_grab (GdkDevice *device,
|
||||
{
|
||||
if (GetCursor () == GDK_WIN32_CURSOR (_gdk_win32_grab_cursor)->hcursor)
|
||||
SetCursor (NULL);
|
||||
g_clear_object (&_gdk_win32_grab_cursor);
|
||||
}
|
||||
|
||||
_gdk_win32_grab_cursor = cursor;
|
||||
g_set_object (&_gdk_win32_grab_cursor, cursor);
|
||||
|
||||
if (_gdk_win32_grab_cursor != NULL)
|
||||
SetCursor (GDK_WIN32_CURSOR (_gdk_win32_grab_cursor)->hcursor);
|
||||
@@ -303,9 +302,8 @@ gdk_device_virtual_ungrab (GdkDevice *device,
|
||||
{
|
||||
if (GetCursor () == GDK_WIN32_CURSOR (_gdk_win32_grab_cursor)->hcursor)
|
||||
SetCursor (NULL);
|
||||
g_clear_object (&_gdk_win32_grab_cursor);
|
||||
}
|
||||
_gdk_win32_grab_cursor = NULL;
|
||||
g_clear_object (&_gdk_win32_grab_cursor);
|
||||
|
||||
ReleaseCapture ();
|
||||
}
|
||||
|
||||
@@ -382,7 +382,8 @@ _gdk_input_wintab_init_check (GdkDeviceManager *_device_manager)
|
||||
BOOL active;
|
||||
DWORD physid;
|
||||
AXIS axis_x, axis_y, axis_npressure, axis_or[3];
|
||||
int i, devix, cursorix, num_axes = 0;
|
||||
UINT devix, cursorix;
|
||||
int i, num_axes = 0;
|
||||
wchar_t devname[100], csrname[100];
|
||||
gchar *devname_utf8, *csrname_utf8, *device_name;
|
||||
BOOL defcontext_done;
|
||||
@@ -481,7 +482,7 @@ _gdk_input_wintab_init_check (GdkDeviceManager *_device_manager)
|
||||
(*p_WTInfoW) (WTI_DEVICES + devix, DVC_NAME, devname);
|
||||
devname_utf8 = g_utf16_to_utf8 (devname, -1, NULL, NULL, NULL);
|
||||
#ifdef DEBUG_WINTAB
|
||||
GDK_NOTE (INPUT, (g_print("Device %d: %s\n", devix, devname_utf8)));
|
||||
GDK_NOTE (INPUT, (g_print("Device %u: %s\n", devix, devname_utf8)));
|
||||
#endif
|
||||
(*p_WTInfoA) (WTI_DEVICES + devix, DVC_NCSRTYPES, &ncsrtypes);
|
||||
(*p_WTInfoA) (WTI_DEVICES + devix, DVC_FIRSTCSR, &firstcsr);
|
||||
@@ -525,7 +526,7 @@ _gdk_input_wintab_init_check (GdkDeviceManager *_device_manager)
|
||||
lc.lcOutExtY = axis_y.axMax - axis_y.axMin + 1;
|
||||
lc.lcOutExtY = -lc.lcOutExtY; /* We want Y growing downward */
|
||||
#if DEBUG_WINTAB
|
||||
GDK_NOTE (INPUT, (g_print("context for device %d:\n", devix),
|
||||
GDK_NOTE (INPUT, (g_print("context for device %u:\n", devix),
|
||||
print_lc(&lc)));
|
||||
#endif
|
||||
hctx = g_new (HCTX, 1);
|
||||
@@ -534,7 +535,7 @@ _gdk_input_wintab_init_check (GdkDeviceManager *_device_manager)
|
||||
g_warning ("gdk_input_wintab_init: WTOpen failed");
|
||||
return;
|
||||
}
|
||||
GDK_NOTE (INPUT, g_print ("opened Wintab device %d %p\n",
|
||||
GDK_NOTE (INPUT, g_print ("opened Wintab device %u %p\n",
|
||||
devix, *hctx));
|
||||
|
||||
wintab_contexts = g_list_append (wintab_contexts, hctx);
|
||||
@@ -544,7 +545,7 @@ _gdk_input_wintab_init_check (GdkDeviceManager *_device_manager)
|
||||
(*p_WTOverlap) (*hctx, TRUE);
|
||||
|
||||
#if DEBUG_WINTAB
|
||||
GDK_NOTE (INPUT, (g_print("context for device %d after WTOpen:\n", devix),
|
||||
GDK_NOTE (INPUT, (g_print("context for device %u after WTOpen:\n", devix),
|
||||
print_lc(&lc)));
|
||||
#endif
|
||||
/* Increase packet queue size to reduce the risk of lost packets.
|
||||
@@ -565,7 +566,7 @@ _gdk_input_wintab_init_check (GdkDeviceManager *_device_manager)
|
||||
for (cursorix = firstcsr; cursorix < firstcsr + ncsrtypes; cursorix++)
|
||||
{
|
||||
#ifdef DEBUG_WINTAB
|
||||
GDK_NOTE (INPUT, (g_print("Cursor %d:\n", cursorix), print_cursor (cursorix)));
|
||||
GDK_NOTE (INPUT, (g_print("Cursor %u:\n", cursorix), print_cursor (cursorix)));
|
||||
#endif
|
||||
active = FALSE;
|
||||
(*p_WTInfoA) (WTI_CURSORS + cursorix, CSR_ACTIVE, &active);
|
||||
@@ -676,7 +677,7 @@ _gdk_input_wintab_init_check (GdkDeviceManager *_device_manager)
|
||||
|
||||
device->last_axis_data = g_new (gint, num_axes);
|
||||
|
||||
GDK_NOTE (INPUT, g_print ("device: (%d) %s axes: %d\n",
|
||||
GDK_NOTE (INPUT, g_print ("device: (%u) %s axes: %d\n",
|
||||
cursorix,
|
||||
device_name,
|
||||
num_axes));
|
||||
|
||||
@@ -26,10 +26,12 @@
|
||||
#include "gdkwin32window.h"
|
||||
#include "gdkwin32.h"
|
||||
|
||||
static int debug_indent = 0;
|
||||
|
||||
/**
|
||||
* gdk_win32_display_set_cursor_theme:
|
||||
* @display: (type GdkWin32Display): a #GdkDisplay
|
||||
* @theme: (allow-none) the name of the cursor theme to use, or %NULL to unset
|
||||
* @name: (allow-none): the name of the cursor theme to use, or %NULL to unset
|
||||
* a previously set value
|
||||
* @size: the cursor size to use, or 0 to keep the previous size
|
||||
*
|
||||
@@ -50,7 +52,7 @@
|
||||
void
|
||||
gdk_win32_display_set_cursor_theme (GdkDisplay *display,
|
||||
const gchar *name,
|
||||
const gint size)
|
||||
gint size)
|
||||
{
|
||||
gint cursor_size;
|
||||
gint w, h;
|
||||
@@ -242,6 +244,81 @@ _gdk_monitor_init (void)
|
||||
}
|
||||
}
|
||||
|
||||
static LRESULT CALLBACK
|
||||
inner_display_change_window_procedure (HWND hwnd,
|
||||
UINT message,
|
||||
WPARAM wparam,
|
||||
LPARAM lparam)
|
||||
{
|
||||
switch (message)
|
||||
{
|
||||
case WM_DESTROY:
|
||||
{
|
||||
PostQuitMessage (0);
|
||||
return 0;
|
||||
}
|
||||
case WM_DISPLAYCHANGE:
|
||||
{
|
||||
_gdk_monitor_init ();
|
||||
_gdk_root_window_size_init ();
|
||||
g_signal_emit_by_name (_gdk_screen, "size_changed");
|
||||
|
||||
return 0;
|
||||
}
|
||||
default:
|
||||
/* Otherwise call DefWindowProcW(). */
|
||||
GDK_NOTE (EVENTS, g_print (" DefWindowProcW"));
|
||||
return DefWindowProc (hwnd, message, wparam, lparam);
|
||||
}
|
||||
}
|
||||
|
||||
static LRESULT CALLBACK
|
||||
display_change_window_procedure (HWND hwnd,
|
||||
UINT message,
|
||||
WPARAM wparam,
|
||||
LPARAM lparam)
|
||||
{
|
||||
LRESULT retval;
|
||||
|
||||
GDK_NOTE (EVENTS, g_print ("%s%*s%s %p",
|
||||
(debug_indent > 0 ? "\n" : ""),
|
||||
debug_indent, "",
|
||||
_gdk_win32_message_to_string (message), hwnd));
|
||||
debug_indent += 2;
|
||||
retval = inner_display_change_window_procedure (hwnd, message, wparam, lparam);
|
||||
debug_indent -= 2;
|
||||
|
||||
GDK_NOTE (EVENTS, g_print (" => %" G_GINT64_FORMAT "%s", (gint64) retval, (debug_indent == 0 ? "\n" : "")));
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
/* Use a hidden window to be notified about display changes */
|
||||
static void
|
||||
register_display_change_notification (GdkDisplay *display)
|
||||
{
|
||||
GdkWin32Display *display_win32 = GDK_WIN32_DISPLAY (display);
|
||||
WNDCLASS wclass = { 0, };
|
||||
ATOM klass;
|
||||
|
||||
wclass.lpszClassName = "GdkDisplayChange";
|
||||
wclass.lpfnWndProc = display_change_window_procedure;
|
||||
wclass.hInstance = _gdk_app_hmodule;
|
||||
|
||||
klass = RegisterClass (&wclass);
|
||||
if (klass)
|
||||
{
|
||||
display_win32->hwnd = CreateWindow (MAKEINTRESOURCE (klass),
|
||||
NULL, WS_POPUP,
|
||||
0, 0, 0, 0, NULL, NULL,
|
||||
_gdk_app_hmodule, NULL);
|
||||
if (!display_win32->hwnd)
|
||||
{
|
||||
UnregisterClass (MAKEINTRESOURCE (klass), _gdk_app_hmodule);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GdkDisplay *
|
||||
_gdk_win32_display_open (const gchar *display_name)
|
||||
{
|
||||
@@ -276,6 +353,8 @@ _gdk_win32_display_open (const gchar *display_name)
|
||||
/* Precalculate display name */
|
||||
(void) gdk_display_get_name (_gdk_display);
|
||||
|
||||
register_display_change_notification (_gdk_display);
|
||||
|
||||
g_signal_emit_by_name (_gdk_display, "opened");
|
||||
|
||||
GDK_NOTE (MISC, g_print ("... _gdk_display now set up\n"));
|
||||
@@ -376,7 +455,6 @@ gdk_win32_display_supports_selection_notification (GdkDisplay *display)
|
||||
}
|
||||
|
||||
static HWND _hwnd_next_viewer = NULL;
|
||||
static int debug_indent = 0;
|
||||
|
||||
/*
|
||||
* maybe this should be integrated with the default message loop - or maybe not ;-)
|
||||
@@ -619,7 +697,6 @@ gdk_win32_display_flush (GdkDisplay * display)
|
||||
GdiFlush ();
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
gdk_win32_display_sync (GdkDisplay * display)
|
||||
{
|
||||
@@ -631,6 +708,9 @@ gdk_win32_display_sync (GdkDisplay * display)
|
||||
static void
|
||||
gdk_win32_display_dispose (GObject *object)
|
||||
{
|
||||
GdkWin32Display *display_win32 = GDK_WIN32_DISPLAY (object);
|
||||
|
||||
g_clear_pointer(&display_win32->hwnd, (GDestroyNotify)DestroyWindow);
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -31,6 +31,8 @@ struct _GdkWin32Display
|
||||
int cursor_theme_size;
|
||||
GHashTable *cursor_cache;
|
||||
|
||||
HWND hwnd;
|
||||
|
||||
/* WGL/OpenGL Items */
|
||||
guint have_wgl : 1;
|
||||
guint gl_version;
|
||||
|
||||
@@ -1043,7 +1043,7 @@ ienumformatetc_next (LPENUMFORMATETC This,
|
||||
ULONG *nelt)
|
||||
{
|
||||
enum_formats *en = (enum_formats *) This;
|
||||
int i, n;
|
||||
ULONG i, n;
|
||||
|
||||
GDK_NOTE (DND, g_print ("ienumformatetc_next %p %d %ld ", This, en->ix, celt));
|
||||
|
||||
|
||||
@@ -1034,7 +1034,7 @@ show_window_recurse (GdkWindow *window, gboolean hide_window)
|
||||
child = children->data;
|
||||
show_window_recurse (child, hide_window);
|
||||
|
||||
children = g_slist_next (children);
|
||||
children = children->next;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1181,8 +1181,8 @@ find_common_ancestor (GdkWindow *win1,
|
||||
while (list1 && list2 && (list1->data == list2->data))
|
||||
{
|
||||
tmp = (GdkWindow *)list1->data;
|
||||
list1 = g_list_next (list1);
|
||||
list2 = g_list_next (list2);
|
||||
list1 = list1->next;
|
||||
list2 = list2->next;
|
||||
}
|
||||
g_list_free (path1);
|
||||
g_list_free (path2);
|
||||
@@ -1280,7 +1280,7 @@ synthesize_crossing_events (GdkDisplay *display,
|
||||
while (list)
|
||||
{
|
||||
win = (GdkWindow *)list->data;
|
||||
list = g_list_next (list);
|
||||
list = list->next;
|
||||
if (list)
|
||||
next = (GdkWindow *)list->data;
|
||||
else
|
||||
@@ -1611,14 +1611,6 @@ sync_timer_proc (HWND hwnd,
|
||||
KillTimer (hwnd, sync_timer);
|
||||
}
|
||||
|
||||
static void
|
||||
handle_display_change (void)
|
||||
{
|
||||
_gdk_monitor_init ();
|
||||
_gdk_root_window_size_init ();
|
||||
g_signal_emit_by_name (_gdk_screen, "size_changed");
|
||||
}
|
||||
|
||||
static gboolean
|
||||
handle_nchittest (HWND hwnd,
|
||||
GdkWindow *window,
|
||||
@@ -3202,10 +3194,6 @@ gdk_event_translate (MSG *msg,
|
||||
return_val = TRUE;
|
||||
break;
|
||||
|
||||
case WM_DISPLAYCHANGE:
|
||||
handle_display_change ();
|
||||
break;
|
||||
|
||||
case WM_DWMCOMPOSITIONCHANGED:
|
||||
_gdk_win32_window_enable_transparency (window);
|
||||
break;
|
||||
|
||||
@@ -618,7 +618,7 @@ gdk_win32_keymap_get_entries_for_keyval (GdkKeymap *keymap,
|
||||
#ifdef G_ENABLE_DEBUG
|
||||
if (_gdk_debug_flags & GDK_DEBUG_EVENTS)
|
||||
{
|
||||
gint i;
|
||||
guint i;
|
||||
|
||||
g_print ("gdk_keymap_get_entries_for_keyval: %#.04x (%s):",
|
||||
keyval, gdk_keyval_name (keyval));
|
||||
|
||||
@@ -664,7 +664,7 @@ _gdk_win32_display_convert_selection (GdkDisplay *display,
|
||||
{
|
||||
BITMAPV5HEADER *bV5 = (BITMAPV5HEADER *) ((char *) data + sizeof (BITMAPFILEHEADER));
|
||||
guchar *p;
|
||||
int i;
|
||||
guint i;
|
||||
|
||||
bV5->bV5Size = sizeof (BITMAPV5HEADER);
|
||||
bV5->bV5Width = bi->biWidth;
|
||||
|
||||
@@ -52,7 +52,7 @@ GType gdk_win32_display_get_type (void);
|
||||
|
||||
GDK_AVAILABLE_IN_3_18
|
||||
void gdk_win32_display_set_cursor_theme (GdkDisplay *display,
|
||||
const gchar *theme,
|
||||
const gchar *name,
|
||||
gint size);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
@@ -826,7 +826,7 @@ gdk_win32_window_destroy (GdkWindow *window,
|
||||
GdkWindowImplWin32 *child_impl = GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW (child)->impl);
|
||||
|
||||
child_impl->transient_owner = NULL;
|
||||
tmp = g_slist_next (tmp);
|
||||
tmp = tmp->next;
|
||||
}
|
||||
g_slist_free (window_impl->transient_children);
|
||||
window_impl->transient_children = NULL;
|
||||
@@ -2299,7 +2299,7 @@ gdk_win32_window_set_icon_list (GdkWindow *window,
|
||||
small_diff = diff;
|
||||
}
|
||||
|
||||
pixbufs = g_list_next (pixbufs);
|
||||
pixbufs = pixbufs->next;
|
||||
}
|
||||
|
||||
/* Create the icons */
|
||||
|
||||
@@ -463,10 +463,16 @@ GdkAppLaunchContext *
|
||||
_gdk_x11_display_get_app_launch_context (GdkDisplay *display)
|
||||
{
|
||||
GdkAppLaunchContext *ctx;
|
||||
const gchar *display_name;
|
||||
|
||||
ctx = g_object_new (GDK_TYPE_X11_APP_LAUNCH_CONTEXT,
|
||||
"display", display,
|
||||
NULL);
|
||||
|
||||
display_name = gdk_display_get_name (display);
|
||||
if (display_name)
|
||||
g_app_launch_context_setenv (G_APP_LAUNCH_CONTEXT (ctx),
|
||||
"DISPLAY", display_name);
|
||||
|
||||
return ctx;
|
||||
}
|
||||
|
||||
@@ -155,13 +155,13 @@ _gdk_x11_cursor_display_finalize (GdkDisplay *display)
|
||||
/* Remove this item from the list */
|
||||
*(itemp) = item->next;
|
||||
olditem = item;
|
||||
item = g_slist_next (item);
|
||||
item = item->next;
|
||||
g_slist_free_1 (olditem);
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
itemp = &(item->next);
|
||||
item = g_slist_next (item);
|
||||
item = item->next;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -472,9 +472,9 @@ gdk_x11_device_core_window_at_position (GdkDevice *device,
|
||||
|
||||
/* FIXME: untrusted clients case not multidevice-safe */
|
||||
pointer_window = None;
|
||||
screen = gdk_display_get_screen (display, 0);
|
||||
screen = gdk_display_get_default_screen (display);
|
||||
toplevels = gdk_screen_get_toplevel_windows (screen);
|
||||
for (list = toplevels; list != NULL; list = g_list_next (list))
|
||||
for (list = toplevels; list != NULL; list = list->next)
|
||||
{
|
||||
window = GDK_WINDOW (list->data);
|
||||
impl = GDK_WINDOW_IMPL_X11 (window->impl);
|
||||
|
||||
@@ -542,9 +542,9 @@ gdk_x11_device_xi2_window_at_position (GdkDevice *device,
|
||||
/* FIXME: untrusted clients case not multidevice-safe */
|
||||
pointer_window = None;
|
||||
|
||||
screen = gdk_display_get_screen (display, 0);
|
||||
screen = gdk_display_get_default_screen (display);
|
||||
toplevels = gdk_screen_get_toplevel_windows (screen);
|
||||
for (list = toplevels; list != NULL; list = g_list_next (list))
|
||||
for (list = toplevels; list != NULL; list = list->next)
|
||||
{
|
||||
window = GDK_WINDOW (list->data);
|
||||
xwindow = GDK_WINDOW_XID (window);
|
||||
|
||||
@@ -301,6 +301,39 @@ is_touch_device (XIAnyClassInfo **classes,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
has_abs_axes (GdkDisplay *display,
|
||||
XIAnyClassInfo **classes,
|
||||
guint n_classes)
|
||||
{
|
||||
gboolean has_x = FALSE, has_y = FALSE;
|
||||
Atom abs_x, abs_y;
|
||||
guint i;
|
||||
|
||||
abs_x = gdk_x11_get_xatom_by_name_for_display (display, "Abs X");
|
||||
abs_y = gdk_x11_get_xatom_by_name_for_display (display, "Abs Y");
|
||||
|
||||
for (i = 0; i < n_classes; i++)
|
||||
{
|
||||
XIValuatorClassInfo *class = (XIValuatorClassInfo *) classes[i];
|
||||
|
||||
if (class->type != XIValuatorClass)
|
||||
continue;
|
||||
if (class->mode != XIModeAbsolute)
|
||||
continue;
|
||||
|
||||
if (class->label == abs_x)
|
||||
has_x = TRUE;
|
||||
else if (class->label == abs_y)
|
||||
has_y = TRUE;
|
||||
|
||||
if (has_x && has_y)
|
||||
break;
|
||||
}
|
||||
|
||||
return (has_x && has_y);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
get_device_ids (GdkDisplay *display,
|
||||
XIDeviceInfo *info,
|
||||
@@ -393,6 +426,8 @@ create_device (GdkDeviceManager *device_manager,
|
||||
else if (strstr (tmp_name, "wacom") ||
|
||||
strstr (tmp_name, "pen"))
|
||||
input_source = GDK_SOURCE_PEN;
|
||||
else if (has_abs_axes (display, dev->classes, dev->num_classes))
|
||||
input_source = GDK_SOURCE_TOUCHSCREEN;
|
||||
else
|
||||
input_source = GDK_SOURCE_MOUSE;
|
||||
|
||||
|
||||
+84
-17
@@ -554,12 +554,13 @@ static GLXContext
|
||||
create_gl3_context (GdkDisplay *display,
|
||||
GLXFBConfig config,
|
||||
GdkGLContext *share,
|
||||
int profile,
|
||||
int flags,
|
||||
int major,
|
||||
int minor)
|
||||
{
|
||||
int attrib_list[] = {
|
||||
GLX_CONTEXT_PROFILE_MASK_ARB, GLX_CONTEXT_CORE_PROFILE_BIT_ARB,
|
||||
GLX_CONTEXT_PROFILE_MASK_ARB, profile,
|
||||
GLX_CONTEXT_MAJOR_VERSION_ARB, major,
|
||||
GLX_CONTEXT_MINOR_VERSION_ARB, minor,
|
||||
GLX_CONTEXT_FLAGS_ARB, flags,
|
||||
@@ -586,6 +587,31 @@ create_gl3_context (GdkDisplay *display,
|
||||
return res;
|
||||
}
|
||||
|
||||
static GLXContext
|
||||
create_legacy_context (GdkDisplay *display,
|
||||
GLXFBConfig config,
|
||||
GdkGLContext *share)
|
||||
{
|
||||
GdkX11GLContext *share_x11 = NULL;
|
||||
GLXContext res;
|
||||
|
||||
if (share != NULL)
|
||||
share_x11 = GDK_X11_GL_CONTEXT (share);
|
||||
|
||||
gdk_x11_display_error_trap_push (display);
|
||||
|
||||
res = glXCreateNewContext (gdk_x11_display_get_xdisplay (display),
|
||||
config,
|
||||
GLX_RGBA_TYPE,
|
||||
share_x11 != NULL ? share_x11->glx_context : NULL,
|
||||
TRUE);
|
||||
|
||||
if (gdk_x11_display_error_trap_pop (display))
|
||||
return NULL;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gdk_x11_gl_context_realize (GdkGLContext *context,
|
||||
GError **error)
|
||||
@@ -598,7 +624,7 @@ gdk_x11_gl_context_realize (GdkGLContext *context,
|
||||
DrawableInfo *info;
|
||||
GdkGLContext *share;
|
||||
GdkWindow *window;
|
||||
gboolean debug_bit, compat_bit;
|
||||
gboolean debug_bit, compat_bit, legacy_bit;
|
||||
int major, minor, flags;
|
||||
|
||||
window = gdk_gl_context_get_window (context);
|
||||
@@ -611,6 +637,17 @@ gdk_x11_gl_context_realize (GdkGLContext *context,
|
||||
debug_bit = gdk_gl_context_get_debug_enabled (context);
|
||||
compat_bit = gdk_gl_context_get_forward_compatible (context);
|
||||
|
||||
/* If there is no glXCreateContextAttribsARB() then we default to legacy */
|
||||
legacy_bit = !GDK_X11_DISPLAY (display)->has_glx_create_context ||
|
||||
(_gdk_gl_flags & GDK_GL_LEGACY) != 0;
|
||||
|
||||
/* We cannot share legacy contexts with core profile ones, so the
|
||||
* shared context is the one that decides if we're going to create
|
||||
* a legacy context or not.
|
||||
*/
|
||||
if (share != NULL && gdk_gl_context_is_legacy (share))
|
||||
legacy_bit = TRUE;
|
||||
|
||||
flags = 0;
|
||||
if (debug_bit)
|
||||
flags |= GLX_CONTEXT_DEBUG_BIT_ARB;
|
||||
@@ -618,15 +655,51 @@ gdk_x11_gl_context_realize (GdkGLContext *context,
|
||||
flags |= GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB;
|
||||
|
||||
GDK_NOTE (OPENGL,
|
||||
g_print ("Creating core GLX context (version:%d.%d, debug:%s, forward:%s)\n",
|
||||
g_print ("Creating core GLX context (version:%d.%d, debug:%s, forward:%s, legacy:%s)\n",
|
||||
major, minor,
|
||||
debug_bit ? "yes" : "no",
|
||||
compat_bit ? "yes" : "no"));
|
||||
compat_bit ? "yes" : "no",
|
||||
legacy_bit ? "yes" : "no"));
|
||||
|
||||
/* If we have access to GLX_ARB_create_context_profile then we can ask for
|
||||
* a compatibility profile; if we don't, then we have to fall back to the
|
||||
* old GLX 1.3 API.
|
||||
*/
|
||||
if (legacy_bit && !GDK_X11_DISPLAY (display)->has_glx_create_context)
|
||||
{
|
||||
GDK_NOTE (OPENGL, g_print ("Creating legacy GL context on request\n"));
|
||||
context_x11->glx_context = create_legacy_context (display, context_x11->glx_config, share);
|
||||
}
|
||||
else
|
||||
{
|
||||
int profile = legacy_bit ? GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB
|
||||
: GLX_CONTEXT_CORE_PROFILE_BIT_ARB;
|
||||
|
||||
/* We need to tweak the version, otherwise we may end up requesting
|
||||
* a compatibility context with a minimum version of 3.2, which is
|
||||
* an error
|
||||
*/
|
||||
if (legacy_bit)
|
||||
{
|
||||
major = 3;
|
||||
minor = 0;
|
||||
}
|
||||
|
||||
GDK_NOTE (OPENGL, g_print ("Creating GL3 context\n"));
|
||||
context_x11->glx_context = create_gl3_context (display,
|
||||
context_x11->glx_config,
|
||||
share,
|
||||
profile, flags, major, minor);
|
||||
|
||||
/* Fall back to legacy in case the GL3 context creation failed */
|
||||
if (context_x11->glx_context == NULL)
|
||||
{
|
||||
GDK_NOTE (OPENGL, g_print ("Creating fallback legacy context\n"));
|
||||
context_x11->glx_context = create_legacy_context (display, context_x11->glx_config, share);
|
||||
legacy_bit = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
context_x11->glx_context = create_gl3_context (display,
|
||||
context_x11->glx_config,
|
||||
share,
|
||||
flags, major, minor);
|
||||
if (context_x11->glx_context == NULL)
|
||||
{
|
||||
g_set_error_literal (error, GDK_GL_ERROR,
|
||||
@@ -635,6 +708,9 @@ gdk_x11_gl_context_realize (GdkGLContext *context,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Ensure that any other context is created with a legacy bit set */
|
||||
gdk_gl_context_set_is_legacy (context, legacy_bit);
|
||||
|
||||
xvisinfo = find_xvisinfo_for_fbconfig (display, context_x11->glx_config);
|
||||
|
||||
info = get_glx_drawable_info (window->impl_window);
|
||||
@@ -1179,15 +1255,6 @@ gdk_x11_window_create_gl_context (GdkWindow *window,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!GDK_X11_DISPLAY (display)->has_glx_create_context)
|
||||
{
|
||||
g_set_error_literal (error, GDK_GL_ERROR,
|
||||
GDK_GL_ERROR_UNSUPPORTED_PROFILE,
|
||||
_("The GLX_ARB_create_context_profile extension "
|
||||
"needed to create core profiles is not available"));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
visual = gdk_window_get_visual (window);
|
||||
if (!find_fbconfig_for_visual (display, visual, &config, error))
|
||||
return NULL;
|
||||
|
||||
@@ -3864,7 +3864,7 @@ gdk_x11_window_set_icon_list (GdkWindow *window,
|
||||
n++;
|
||||
size += 2 + width * height;
|
||||
|
||||
l = g_list_next (l);
|
||||
l = l->next;
|
||||
}
|
||||
|
||||
data = g_malloc (size * sizeof (gulong));
|
||||
@@ -3903,7 +3903,7 @@ gdk_x11_window_set_icon_list (GdkWindow *window,
|
||||
}
|
||||
}
|
||||
|
||||
l = g_list_next (l);
|
||||
l = l->next;
|
||||
n--;
|
||||
}
|
||||
|
||||
@@ -4933,8 +4933,7 @@ finish_drag (MoveResizeData *mv_resize)
|
||||
{
|
||||
gdk_window_destroy (mv_resize->moveresize_emulation_window);
|
||||
mv_resize->moveresize_emulation_window = NULL;
|
||||
g_object_unref (mv_resize->moveresize_window);
|
||||
mv_resize->moveresize_window = NULL;
|
||||
g_clear_object (&mv_resize->moveresize_window);
|
||||
g_clear_pointer (&mv_resize->moveresize_pending_event, g_free);
|
||||
}
|
||||
|
||||
|
||||
+36
-1
@@ -14,6 +14,7 @@ AM_CPPFLAGS = \
|
||||
-DGTK_COMPILATION \
|
||||
-DGTK_PRINT_BACKENDS=\"$(GTK_PRINT_BACKENDS)\" \
|
||||
-DGTK_PRINT_BACKEND_ENABLE_UNSUPPORTED \
|
||||
-DX11_DATA_PREFIX=\"$(X11_PREFIX)\" \
|
||||
-I$(top_builddir) \
|
||||
-I$(top_builddir)/gtk \
|
||||
-I$(top_srcdir) \
|
||||
@@ -179,6 +180,7 @@ gtk_public_h_sources = \
|
||||
gtkfilechooser.h \
|
||||
gtkfilechooserbutton.h \
|
||||
gtkfilechooserdialog.h \
|
||||
gtkfilechoosernative.h \
|
||||
gtkfilechooserwidget.h \
|
||||
gtkfilefilter.h \
|
||||
gtkfixed.h \
|
||||
@@ -228,6 +230,7 @@ gtk_public_h_sources = \
|
||||
gtkmodelbutton.h \
|
||||
gtkmodules.h \
|
||||
gtkmountoperation.h \
|
||||
gtknativedialog.h \
|
||||
gtknotebook.h \
|
||||
gtkoffscreenwindow.h \
|
||||
gtkorientable.h \
|
||||
@@ -268,6 +271,11 @@ gtk_public_h_sources = \
|
||||
gtkseparatormenuitem.h \
|
||||
gtkseparatortoolitem.h \
|
||||
gtksettings.h \
|
||||
gtkshortcutsgesture.h \
|
||||
gtkshortcutsgroup.h \
|
||||
gtkshortcutssection.h \
|
||||
gtkshortcutsshortcut.h \
|
||||
gtkshortcutswindow.h \
|
||||
gtkshow.h \
|
||||
gtkstacksidebar.h \
|
||||
gtksizegroup.h \
|
||||
@@ -361,6 +369,7 @@ gtk_private_h_sources = \
|
||||
gtkbuttonprivate.h \
|
||||
gtkcairoblurprivate.h \
|
||||
gtkcellareaboxcontextprivate.h \
|
||||
gtkcheckbuttonprivate.h \
|
||||
gtkclipboardprivate.h \
|
||||
gtkcolorswatchprivate.h \
|
||||
gtkcoloreditorprivate.h \
|
||||
@@ -368,6 +377,7 @@ gtk_private_h_sources = \
|
||||
gtkcolorscaleprivate.h \
|
||||
gtkcolorchooserprivate.h \
|
||||
gtkcomboboxprivate.h \
|
||||
gtkcomposetable.h \
|
||||
gtkcontainerprivate.h \
|
||||
gtkcssanimationprivate.h \
|
||||
gtkcssanimatedstyleprivate.h \
|
||||
@@ -431,8 +441,10 @@ gtk_private_h_sources = \
|
||||
gtkfilechooserembed.h \
|
||||
gtkfilechooserentry.h \
|
||||
gtkfilechooserprivate.h \
|
||||
gtkfilechoosernativeprivate.h \
|
||||
gtkfilechooserwidgetprivate.h \
|
||||
gtkfilechooserutils.h \
|
||||
gtkfilefilterprivate.h \
|
||||
gtkfilesystem.h \
|
||||
gtkfilesystemmodel.h \
|
||||
gtkfontchooserprivate.h \
|
||||
@@ -452,6 +464,7 @@ gtk_private_h_sources = \
|
||||
gtkiconhelperprivate.h \
|
||||
gtkiconviewprivate.h \
|
||||
gtkimageprivate.h \
|
||||
gtkimcontextsimpleprivate.h \
|
||||
gtkimmoduleprivate.h \
|
||||
gtkimcontextsimpleseqs.h \
|
||||
gtkintl.h \
|
||||
@@ -472,6 +485,7 @@ gtk_private_h_sources = \
|
||||
gtkmodifierstyle.h \
|
||||
gtkmodulesprivate.h \
|
||||
gtkmountoperationprivate.h \
|
||||
gtknativedialogprivate.h \
|
||||
gtkorientableprivate.h \
|
||||
gtkpango.h \
|
||||
gtkpathbar.h \
|
||||
@@ -500,8 +514,9 @@ gtk_private_h_sources = \
|
||||
gtksearchenginemodel.h \
|
||||
gtksearchentryprivate.h \
|
||||
gtkselectionprivate.h \
|
||||
gtksidebarrowprivate.h \
|
||||
gtksettingsprivate.h \
|
||||
gtkshortcutlabelprivate.h \
|
||||
gtksidebarrowprivate.h \
|
||||
gtksizegroup-private.h \
|
||||
gtksizerequestcacheprivate.h \
|
||||
gtksocketprivate.h \
|
||||
@@ -512,6 +527,7 @@ gtk_private_h_sources = \
|
||||
gtkstyleproviderprivate.h \
|
||||
gtktextattributesprivate.h \
|
||||
gtktextbtree.h \
|
||||
gtktextbufferprivate.h \
|
||||
gtktextbufferserialize.h \
|
||||
gtktextchildprivate.h \
|
||||
gtktexthandleprivate.h \
|
||||
@@ -526,6 +542,7 @@ gtk_private_h_sources = \
|
||||
gtktoolbarprivate.h \
|
||||
gtktoolpaletteprivate.h \
|
||||
gtktooltipprivate.h \
|
||||
gtktooltipwindowprivate.h \
|
||||
gtktreedatalist.h \
|
||||
gtktreeprivate.h \
|
||||
gtkwidgetprivate.h \
|
||||
@@ -609,6 +626,7 @@ gtk_base_c_sources = \
|
||||
gtkcolorutils.c \
|
||||
gtkcombobox.c \
|
||||
gtkcomboboxtext.c \
|
||||
gtkcomposetable.c \
|
||||
gtkcontainer.c \
|
||||
gtkcssanimation.c \
|
||||
gtkcssanimatedstyle.c \
|
||||
@@ -681,6 +699,7 @@ gtk_base_c_sources = \
|
||||
gtkfilechooserdialog.c \
|
||||
gtkfilechooserembed.c \
|
||||
gtkfilechooserentry.c \
|
||||
gtkfilechoosernative.c \
|
||||
gtkfilechooserutils.c \
|
||||
gtkfilechooserwidget.c \
|
||||
gtkfilefilter.c \
|
||||
@@ -748,6 +767,7 @@ gtk_base_c_sources = \
|
||||
gtkmodifierstyle.c \
|
||||
gtkmodules.c \
|
||||
gtkmountoperation.c \
|
||||
gtknativedialog.c \
|
||||
gtknotebook.c \
|
||||
gtkoffscreenwindow.c \
|
||||
gtkorientable.c \
|
||||
@@ -801,6 +821,12 @@ gtk_base_c_sources = \
|
||||
gtkseparatormenuitem.c \
|
||||
gtkseparatortoolitem.c \
|
||||
gtksettings.c \
|
||||
gtkshortcutsgesture.c \
|
||||
gtkshortcutsgroup.c \
|
||||
gtkshortcutlabel.c \
|
||||
gtkshortcutsshortcut.c \
|
||||
gtkshortcutssection.c \
|
||||
gtkshortcutswindow.c \
|
||||
gtksidebarrow.c \
|
||||
gtksizegroup.c \
|
||||
gtksizerequest.c \
|
||||
@@ -846,6 +872,7 @@ gtk_base_c_sources = \
|
||||
gtktoolpalette.c \
|
||||
gtktoolshell.c \
|
||||
gtktooltip.c \
|
||||
gtktooltipwindow.c \
|
||||
gtktrashmonitor.c \
|
||||
gtktreedatalist.c \
|
||||
gtktreednd.c \
|
||||
@@ -918,6 +945,7 @@ endif
|
||||
gtk_os_win32_c_sources = \
|
||||
gtkprint-win32.c \
|
||||
gtkprintoperation-win32.c \
|
||||
gtkfilechoosernativewin32.c \
|
||||
gtkwin32.c
|
||||
if OS_WIN32
|
||||
gtk_private_h_sources += gtkprint-win32.h
|
||||
@@ -1400,6 +1428,7 @@ bin_PROGRAMS = \
|
||||
gtk-update-icon-cache \
|
||||
gtk-encode-symbolic-svg \
|
||||
gtk-builder-tool \
|
||||
gtk-query-settings \
|
||||
gtk-launch
|
||||
|
||||
gtk_query_immodules_3_0_SOURCES = queryimmodules.c
|
||||
@@ -1424,6 +1453,12 @@ gtk_builder_tool_LDADD = \
|
||||
$(top_builddir)/gdk/libgdk-3.la \
|
||||
$(GTK_DEP_LIBS)
|
||||
|
||||
gtk_query_settings_SOURCES = gtk-query-settings.c
|
||||
gtk_query_settings_LDADD= \
|
||||
libgtk-3.la \
|
||||
$(top_builddir)/gdk/libgdk-3.la \
|
||||
$(GTK_DEP_LIBS)
|
||||
|
||||
gtk_launch_SOURCES = gtk-launch.c
|
||||
gtk_launch_LDADD = \
|
||||
libgtk-3.la \
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
#include <glib/gstdio.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include "gtktextviewaccessibleprivate.h"
|
||||
#include "gtktextbufferprivate.h"
|
||||
#include "gtk/gtkwidgetprivate.h"
|
||||
|
||||
struct _GtkTextViewAccessiblePrivate
|
||||
|
||||
@@ -457,7 +457,7 @@ gtk_icon_factory_lookup_default (const gchar *stock_id)
|
||||
if (icon_set)
|
||||
return icon_set;
|
||||
|
||||
tmp_list = g_slist_next (tmp_list);
|
||||
tmp_list = tmp_list->next;
|
||||
}
|
||||
|
||||
default_icons = _gtk_icon_factory_get_default_icons ();
|
||||
@@ -1125,7 +1125,7 @@ gtk_icon_set_unref (GtkIconSet *icon_set)
|
||||
{
|
||||
gtk_icon_source_free (tmp_list->data);
|
||||
|
||||
tmp_list = g_slist_next (tmp_list);
|
||||
tmp_list = tmp_list->next;
|
||||
}
|
||||
g_slist_free (icon_set->sources);
|
||||
|
||||
@@ -1163,7 +1163,7 @@ gtk_icon_set_copy (GtkIconSet *icon_set)
|
||||
copy->sources = g_slist_prepend (copy->sources,
|
||||
gtk_icon_source_copy (tmp_list->data));
|
||||
|
||||
tmp_list = g_slist_next (tmp_list);
|
||||
tmp_list = tmp_list->next;
|
||||
}
|
||||
|
||||
copy->sources = g_slist_reverse (copy->sources);
|
||||
@@ -1233,7 +1233,7 @@ find_best_matching_source (GtkIconSet *icon_set,
|
||||
}
|
||||
}
|
||||
|
||||
tmp_list = g_slist_next (tmp_list);
|
||||
tmp_list = tmp_list->next;
|
||||
}
|
||||
|
||||
return source;
|
||||
@@ -1798,7 +1798,7 @@ gtk_icon_set_get_sizes (GtkIconSet *icon_set,
|
||||
else
|
||||
specifics = g_slist_prepend (specifics, GINT_TO_POINTER (source->size));
|
||||
|
||||
tmp_list = g_slist_next (tmp_list);
|
||||
tmp_list = tmp_list->next;
|
||||
}
|
||||
|
||||
if (all_sizes)
|
||||
@@ -1832,7 +1832,7 @@ gtk_icon_set_get_sizes (GtkIconSet *icon_set,
|
||||
(*sizes)[i] = GPOINTER_TO_INT (tmp_list->data);
|
||||
|
||||
++i;
|
||||
tmp_list = g_slist_next (tmp_list);
|
||||
tmp_list = tmp_list->next;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2504,7 +2504,7 @@ find_in_cache (GtkIconSet *icon_set,
|
||||
}
|
||||
|
||||
prev = tmp_list;
|
||||
tmp_list = g_slist_next (tmp_list);
|
||||
tmp_list = tmp_list->next;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
@@ -2596,7 +2596,7 @@ clear_cache (GtkIconSet *icon_set,
|
||||
|
||||
cached_icon_free (icon);
|
||||
|
||||
tmp_list = g_slist_next (tmp_list);
|
||||
tmp_list = tmp_list->next;
|
||||
}
|
||||
|
||||
g_slist_free (cache);
|
||||
@@ -2628,7 +2628,7 @@ copy_cache (GtkIconSet *icon_set,
|
||||
|
||||
copy = g_slist_prepend (copy, icon_copy);
|
||||
|
||||
tmp_list = g_slist_next (tmp_list);
|
||||
tmp_list = tmp_list->next;
|
||||
}
|
||||
|
||||
return g_slist_reverse (copy);
|
||||
@@ -2734,7 +2734,7 @@ _gtk_icon_factory_list_ids (void)
|
||||
|
||||
ids = g_list_concat (ids, these_ids);
|
||||
|
||||
tmp_list = g_slist_next (tmp_list);
|
||||
tmp_list = tmp_list->next;
|
||||
}
|
||||
|
||||
return ids;
|
||||
|
||||
@@ -255,7 +255,7 @@ gtk_stock_list_ids (void)
|
||||
{
|
||||
GList *next;
|
||||
|
||||
next = g_list_next (ids);
|
||||
next = ids->next;
|
||||
|
||||
if (last_id && strcmp (ids->data, last_id) == 0)
|
||||
{
|
||||
@@ -268,7 +268,7 @@ gtk_stock_list_ids (void)
|
||||
}
|
||||
|
||||
g_list_free_1 (ids);
|
||||
|
||||
|
||||
ids = next;
|
||||
}
|
||||
|
||||
|
||||
@@ -104,15 +104,15 @@
|
||||
bind "<ctrl>b" { "move-current" (parent) };
|
||||
}
|
||||
|
||||
GtkEntry {
|
||||
entry {
|
||||
gtk-key-bindings: gtk-emacs-text-entry;
|
||||
}
|
||||
|
||||
GtkTextView {
|
||||
textview {
|
||||
gtk-key-bindings: gtk-emacs-text-entry, gtk-emacs-text-view;
|
||||
}
|
||||
|
||||
GtkTreeView {
|
||||
treeview {
|
||||
gtk-key-bindings: gtk-emacs-tree-view;
|
||||
}
|
||||
|
||||
|
||||
@@ -180,19 +180,19 @@
|
||||
unbind "<shift><ctrl>a";
|
||||
}
|
||||
|
||||
GtkIconView {
|
||||
iconview {
|
||||
gtk-key-bindings: gtk-mac-icon-view;
|
||||
}
|
||||
|
||||
GtkTextView {
|
||||
textview {
|
||||
gtk-key-bindings: gtk-mac-alt-arrows, gtk-mac-alt-delete, gtk-mac-cmd-c, gtk-mac-text-view;
|
||||
}
|
||||
|
||||
GtkEntry {
|
||||
entry {
|
||||
gtk-key-bindings: gtk-mac-alt-arrows, gtk-mac-alt-delete, gtk-mac-cmd-c, gtk-mac-entry;
|
||||
}
|
||||
|
||||
GtkLabel {
|
||||
label {
|
||||
gtk-key-bindings: gtk-mac-alt-arrows, gtk-mac-label;
|
||||
}
|
||||
|
||||
@@ -200,6 +200,6 @@ GtkFileChooserWidget {
|
||||
gtk-key-bindings: gtk-mac-file-chooser;
|
||||
}
|
||||
|
||||
GtkTreeView {
|
||||
treeview {
|
||||
gtk-key-bindings: gtk-mac-tree-view;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
/* Copyright 2015 Timm Bäder
|
||||
*
|
||||
* GTK+ is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Lesser General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* GLib is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with GTK+; see the file COPYING. If not,
|
||||
* see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <glib.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
GtkSettings *settings;
|
||||
GParamSpec **props;
|
||||
guint n_properties;
|
||||
int i;
|
||||
int max_prop_name_length = 0;
|
||||
gchar *pattern = NULL;
|
||||
|
||||
gtk_init (&argc, &argv);
|
||||
|
||||
if (argc > 1)
|
||||
pattern = argv[1];
|
||||
|
||||
settings = gtk_settings_get_default ();
|
||||
props = g_object_class_list_properties (G_OBJECT_GET_CLASS (settings), &n_properties);
|
||||
|
||||
for (i = 0; i < n_properties; i ++)
|
||||
{
|
||||
int len = strlen (props[i]->name);
|
||||
|
||||
if (len > max_prop_name_length)
|
||||
max_prop_name_length = len;
|
||||
}
|
||||
|
||||
|
||||
for (i = 0; i < n_properties; i ++)
|
||||
{
|
||||
GValue value = {0};
|
||||
GParamSpec *prop = props[i];
|
||||
gchar *value_str;
|
||||
int spacing = max_prop_name_length - strlen (prop->name);
|
||||
|
||||
if (pattern && !g_strrstr (prop->name, pattern))
|
||||
continue;
|
||||
|
||||
g_value_init (&value, prop->value_type);
|
||||
g_object_get_property (G_OBJECT (settings), prop->name, &value);
|
||||
|
||||
if (G_VALUE_HOLDS_ENUM (&value))
|
||||
{
|
||||
GEnumClass *enum_class = G_PARAM_SPEC_ENUM (prop)->enum_class;
|
||||
GEnumValue *enum_value = g_enum_get_value (enum_class, g_value_get_enum (&value));
|
||||
|
||||
value_str = g_strdup (enum_value->value_name);
|
||||
}
|
||||
else
|
||||
{
|
||||
value_str = g_strdup_value_contents (&value);
|
||||
}
|
||||
|
||||
for (; spacing >= 0; spacing --)
|
||||
printf (" ");
|
||||
|
||||
printf ("%s: %s\n", prop->name, value_str);
|
||||
|
||||
g_free (value_str);
|
||||
g_value_unset (&value);
|
||||
}
|
||||
|
||||
g_free (props);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -97,6 +97,7 @@
|
||||
#include <gtk/gtkfilechooser.h>
|
||||
#include <gtk/gtkfilechooserbutton.h>
|
||||
#include <gtk/gtkfilechooserdialog.h>
|
||||
#include <gtk/gtkfilechoosernative.h>
|
||||
#include <gtk/gtkfilechooserwidget.h>
|
||||
#include <gtk/gtkfilefilter.h>
|
||||
#include <gtk/gtkflowbox.h>
|
||||
@@ -144,6 +145,7 @@
|
||||
#include <gtk/gtkmodelbutton.h>
|
||||
#include <gtk/gtkmodules.h>
|
||||
#include <gtk/gtkmountoperation.h>
|
||||
#include <gtk/gtknativedialog.h>
|
||||
#include <gtk/gtknotebook.h>
|
||||
#include <gtk/gtkoffscreenwindow.h>
|
||||
#include <gtk/gtkorientable.h>
|
||||
@@ -183,6 +185,11 @@
|
||||
#include <gtk/gtkseparatormenuitem.h>
|
||||
#include <gtk/gtkseparatortoolitem.h>
|
||||
#include <gtk/gtksettings.h>
|
||||
#include <gtk/gtkshortcutsgesture.h>
|
||||
#include <gtk/gtkshortcutsgroup.h>
|
||||
#include <gtk/gtkshortcutssection.h>
|
||||
#include <gtk/gtkshortcutsshortcut.h>
|
||||
#include <gtk/gtkshortcutswindow.h>
|
||||
#include <gtk/gtkshow.h>
|
||||
#include <gtk/gtkstacksidebar.h>
|
||||
#include <gtk/gtksizegroup.h>
|
||||
|
||||
+49
-5
@@ -36,6 +36,9 @@
|
||||
#include "gtkrender.h"
|
||||
#include "gtksizerequest.h"
|
||||
#include "gtkstylecontextprivate.h"
|
||||
#include "gtkwidgetprivate.h"
|
||||
#include "gtkcssnodeprivate.h"
|
||||
#include "gtkcssstylepropertyprivate.h"
|
||||
|
||||
/**
|
||||
* SECTION:gtkaccellabel
|
||||
@@ -91,6 +94,16 @@
|
||||
* gtk_widget_add_accelerator (save_item, "activate", accel_group,
|
||||
* GDK_KEY_s, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
|
||||
* ]|
|
||||
*
|
||||
* # CSS nodes
|
||||
*
|
||||
* |[<!-- language="plain" -->
|
||||
* label
|
||||
* ╰── accelerator
|
||||
* ]|
|
||||
*
|
||||
* Like #GtkLabel, GtkAccelLabel has a main CSS node with the name label.
|
||||
* It adds a subnode with name accelerator.
|
||||
*/
|
||||
|
||||
enum {
|
||||
@@ -106,6 +119,7 @@ struct _GtkAccelLabelPrivate
|
||||
GClosure *accel_closure; /* has set function */
|
||||
GtkAccelGroup *accel_group; /* set by set_accel_closure() */
|
||||
gchar *accel_string; /* has set function */
|
||||
GtkCssNode *accel_node;
|
||||
guint accel_padding; /* should be style property? */
|
||||
guint16 accel_string_width; /* seems to be private */
|
||||
|
||||
@@ -253,10 +267,34 @@ gtk_accel_label_get_property (GObject *object,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
node_style_changed_cb (GtkCssNode *node,
|
||||
GtkCssStyle *old_style,
|
||||
GtkCssStyle *new_style,
|
||||
GtkWidget *widget)
|
||||
{
|
||||
GtkBitmask *changes;
|
||||
static GtkBitmask *affects_size = NULL;
|
||||
|
||||
if (G_UNLIKELY (affects_size == NULL))
|
||||
affects_size = _gtk_css_style_property_get_mask_affecting (GTK_CSS_AFFECTS_SIZE | GTK_CSS_AFFECTS_CLIP);
|
||||
|
||||
changes = _gtk_bitmask_new ();
|
||||
changes = gtk_css_style_add_difference (changes, old_style, new_style);
|
||||
|
||||
if (_gtk_bitmask_intersects (changes, affects_size))
|
||||
gtk_widget_queue_resize (widget);
|
||||
else
|
||||
gtk_widget_queue_draw (widget);
|
||||
|
||||
_gtk_bitmask_free (changes);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_accel_label_init (GtkAccelLabel *accel_label)
|
||||
{
|
||||
GtkAccelLabelPrivate *priv;
|
||||
GtkCssNode *widget_node;
|
||||
|
||||
accel_label->priv = gtk_accel_label_get_instance_private (accel_label);
|
||||
priv = accel_label->priv;
|
||||
@@ -266,6 +304,14 @@ gtk_accel_label_init (GtkAccelLabel *accel_label)
|
||||
priv->accel_closure = NULL;
|
||||
priv->accel_group = NULL;
|
||||
priv->accel_string = NULL;
|
||||
|
||||
widget_node = gtk_widget_get_css_node (GTK_WIDGET (accel_label));
|
||||
priv->accel_node = gtk_css_node_new ();
|
||||
gtk_css_node_set_name (priv->accel_node, I_("accelerator"));
|
||||
gtk_css_node_set_parent (priv->accel_node, widget_node);
|
||||
gtk_css_node_set_state (priv->accel_node, gtk_css_node_get_state (widget_node));
|
||||
g_signal_connect_object (priv->accel_node, "style-changed", G_CALLBACK (node_style_changed_cb), accel_label, 0);
|
||||
g_object_unref (priv->accel_node);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -358,8 +404,7 @@ gtk_accel_label_get_accel_layout (GtkAccelLabel *accel_label)
|
||||
|
||||
context = gtk_widget_get_style_context (widget);
|
||||
|
||||
gtk_style_context_save (context);
|
||||
gtk_style_context_add_class (context, GTK_STYLE_CLASS_ACCELERATOR);
|
||||
gtk_style_context_save_to_node (context, accel_label->priv->accel_node);
|
||||
|
||||
layout = gtk_widget_create_pango_layout (widget, gtk_accel_label_get_string (accel_label));
|
||||
|
||||
@@ -367,7 +412,7 @@ gtk_accel_label_get_accel_layout (GtkAccelLabel *accel_label)
|
||||
if (!attrs)
|
||||
attrs = pango_attr_list_new ();
|
||||
gtk_style_context_get (context,
|
||||
gtk_widget_get_state_flags (widget),
|
||||
gtk_style_context_get_state (context),
|
||||
"font", &font_desc,
|
||||
NULL);
|
||||
pango_attr_list_change (attrs, pango_attr_font_desc_new (font_desc));
|
||||
@@ -473,8 +518,7 @@ gtk_accel_label_draw (GtkWidget *widget,
|
||||
accel_layout = gtk_accel_label_get_accel_layout (accel_label);
|
||||
y += get_first_baseline (label_layout) - get_first_baseline (accel_layout) - allocation.y;
|
||||
|
||||
gtk_style_context_save (context);
|
||||
gtk_style_context_add_class (context, GTK_STYLE_CLASS_ACCELERATOR);
|
||||
gtk_style_context_save_to_node (context, accel_label->priv->accel_node);
|
||||
gtk_render_layout (context, cr, x, y, accel_layout);
|
||||
gtk_style_context_restore (context);
|
||||
|
||||
|
||||
@@ -43,6 +43,10 @@
|
||||
* contains an internal centered box which is centered with respect to
|
||||
* the full width of the box, even if the children at either side take
|
||||
* up different amounts of space.
|
||||
*
|
||||
* # CSS nodes
|
||||
*
|
||||
* GtkActionBar has a single CSS node with name actionbar.
|
||||
*/
|
||||
|
||||
struct _GtkActionBarPrivate
|
||||
@@ -251,6 +255,7 @@ gtk_action_bar_class_init (GtkActionBarClass *klass)
|
||||
gtk_widget_class_bind_template_child_internal_private (widget_class, GtkActionBar, revealer);
|
||||
|
||||
gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_PANEL);
|
||||
gtk_widget_class_set_css_name (widget_class, "actionbar");
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
+48
-8
@@ -38,6 +38,7 @@
|
||||
#include "gtkaccelmapprivate.h"
|
||||
#include "gtkicontheme.h"
|
||||
#include "gtkbuilder.h"
|
||||
#include "gtkshortcutswindow.h"
|
||||
#include "gtkintl.h"
|
||||
|
||||
/* NB: please do not add backend-specific GDK headers here. This should
|
||||
@@ -74,7 +75,7 @@
|
||||
* ## Automatic resources ## {#automatic-resources}
|
||||
*
|
||||
* #GtkApplication will automatically load menus from the #GtkBuilder
|
||||
* file located at "gtk/menus.ui", relative to the application's
|
||||
* resource located at "gtk/menus.ui", relative to the application's
|
||||
* resource base path (see g_application_set_resource_base_path()). The
|
||||
* menu with the ID "app-menu" is taken as the application's app menu
|
||||
* and the menu with the ID "menubar" is taken as the application's
|
||||
@@ -82,7 +83,7 @@
|
||||
* and accessed via gtk_application_get_menu_by_id() which allows for
|
||||
* dynamic population of a part of the menu structure.
|
||||
*
|
||||
* If the files "gtk/menus-appmenu.ui" or "gtk/menus-traditional.ui" are
|
||||
* If the resources "gtk/menus-appmenu.ui" or "gtk/menus-traditional.ui" are
|
||||
* present then these files will be used in preference, depending on the
|
||||
* value of gtk_application_prefers_app_menu().
|
||||
*
|
||||
@@ -95,6 +96,12 @@
|
||||
* resources. See gtk_icon_theme_add_resource_path() for more
|
||||
* information.
|
||||
*
|
||||
* If there is a resource located at "gtk/help-overlay.ui" which is
|
||||
* defining a #GtkShortcutsWindow with ID "help_overlay" then GtkApplication
|
||||
* associates an instance of this shortcuts window with each
|
||||
* #GtkApplicationWindow and sets up keyboard accelerators (Control-F1
|
||||
* and Control-?) to open it.
|
||||
*
|
||||
* ## A simple application ## {#gtkapplication}
|
||||
*
|
||||
* [A simple example](https://git.gnome.org/browse/gtk+/tree/examples/bp/bloatpad.c)
|
||||
@@ -485,9 +492,10 @@ struct _GtkApplicationPrivate
|
||||
Accels accels;
|
||||
guint last_window_id;
|
||||
|
||||
gboolean register_session;
|
||||
gboolean register_session;
|
||||
GtkActionMuxer *muxer;
|
||||
GtkBuilder *menus_builder;
|
||||
gchar *help_overlay_path;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (GtkApplication, gtk_application, G_TYPE_APPLICATION)
|
||||
@@ -588,6 +596,22 @@ gtk_application_load_resources (GtkApplication *application)
|
||||
gtk_application_set_menubar (application, G_MENU_MODEL (menu));
|
||||
}
|
||||
}
|
||||
|
||||
/* Help overlay */
|
||||
{
|
||||
gchar *path;
|
||||
|
||||
path = g_strconcat (base_path, "/gtk/help-overlay.ui", NULL);
|
||||
if (g_resources_get_info (path, G_RESOURCE_LOOKUP_FLAGS_NONE, NULL, NULL, NULL))
|
||||
{
|
||||
const gchar * const accels[] = { "<Primary>F1", "<Primary>question", NULL };
|
||||
|
||||
application->priv->help_overlay_path = path;
|
||||
gtk_application_set_accels_for_action (application, "win.show-help-overlay", accels);
|
||||
}
|
||||
else
|
||||
g_free (path);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -698,7 +722,21 @@ gtk_application_window_added (GtkApplication *application,
|
||||
GtkApplicationPrivate *priv = application->priv;
|
||||
|
||||
if (GTK_IS_APPLICATION_WINDOW (window))
|
||||
gtk_application_window_set_id (GTK_APPLICATION_WINDOW (window), ++application->priv->last_window_id);
|
||||
{
|
||||
gtk_application_window_set_id (GTK_APPLICATION_WINDOW (window), ++priv->last_window_id);
|
||||
if (priv->help_overlay_path)
|
||||
{
|
||||
GtkBuilder *builder;
|
||||
GtkWidget *help_overlay;
|
||||
|
||||
builder = gtk_builder_new_from_resource (priv->help_overlay_path);
|
||||
help_overlay = GTK_WIDGET (gtk_builder_get_object (builder, "help_overlay"));
|
||||
if (GTK_IS_SHORTCUTS_WINDOW (help_overlay))
|
||||
gtk_application_window_set_help_overlay (GTK_APPLICATION_WINDOW (window),
|
||||
GTK_SHORTCUTS_WINDOW (help_overlay));
|
||||
g_object_unref (builder);
|
||||
}
|
||||
}
|
||||
|
||||
priv->windows = g_list_prepend (priv->windows, window);
|
||||
gtk_window_set_application (window, application);
|
||||
@@ -708,9 +746,10 @@ gtk_application_window_added (GtkApplication *application,
|
||||
G_CALLBACK (gtk_application_focus_in_event_cb),
|
||||
application);
|
||||
|
||||
gtk_application_impl_window_added (application->priv->impl, window);
|
||||
gtk_application_impl_window_added (priv->impl, window);
|
||||
|
||||
gtk_application_impl_active_window_changed (priv->impl, window);
|
||||
|
||||
gtk_application_impl_active_window_changed (application->priv->impl, window);
|
||||
g_object_notify_by_pspec (G_OBJECT (application), gtk_application_props[PROP_ACTIVE_WINDOW]);
|
||||
}
|
||||
|
||||
@@ -870,8 +909,9 @@ gtk_application_finalize (GObject *object)
|
||||
|
||||
accels_finalize (&application->priv->accels);
|
||||
|
||||
G_OBJECT_CLASS (gtk_application_parent_class)
|
||||
->finalize (object);
|
||||
g_free (application->priv->help_overlay_path);
|
||||
|
||||
G_OBJECT_CLASS (gtk_application_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -228,6 +228,8 @@ struct _GtkApplicationWindowPrivate
|
||||
GMenu *menubar_section;
|
||||
|
||||
guint id;
|
||||
|
||||
GtkShortcutsWindow *help_overlay;
|
||||
};
|
||||
|
||||
static void
|
||||
@@ -788,9 +790,9 @@ gtk_application_window_dispose (GObject *object)
|
||||
|
||||
g_clear_object (&window->priv->app_menu_section);
|
||||
g_clear_object (&window->priv->menubar_section);
|
||||
g_clear_object (&window->priv->help_overlay);
|
||||
|
||||
G_OBJECT_CLASS (gtk_application_window_parent_class)
|
||||
->dispose (object);
|
||||
G_OBJECT_CLASS (gtk_application_window_parent_class)->dispose (object);
|
||||
|
||||
/* We do this below the chain-up above to give us a chance to be
|
||||
* removed from the GtkApplication (which is done in the dispose
|
||||
@@ -959,3 +961,75 @@ gtk_application_window_set_id (GtkApplicationWindow *window,
|
||||
g_return_if_fail (GTK_IS_APPLICATION_WINDOW (window));
|
||||
window->priv->id = id;
|
||||
}
|
||||
|
||||
static void
|
||||
show_help_overlay (GSimpleAction *action,
|
||||
GVariant *parameter,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkApplicationWindow *window = user_data;
|
||||
|
||||
if (window->priv->help_overlay)
|
||||
gtk_widget_show (GTK_WIDGET (window->priv->help_overlay));
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_application_window_set_help_overlay:
|
||||
* @window: a #GtkApplicationWindow
|
||||
* @help_overlay: a #GtkShortcutsWindow
|
||||
*
|
||||
* Associates a shortcuts window with the application window, and
|
||||
* sets up a action with the name win.show-help-overay to present
|
||||
* it.
|
||||
*
|
||||
* Since: 3.20
|
||||
*/
|
||||
void
|
||||
gtk_application_window_set_help_overlay (GtkApplicationWindow *window,
|
||||
GtkShortcutsWindow *help_overlay)
|
||||
{
|
||||
g_return_if_fail (GTK_IS_APPLICATION_WINDOW (window));
|
||||
g_return_if_fail (help_overlay == NULL || GTK_IS_SHORTCUTS_WINDOW (help_overlay));
|
||||
|
||||
if (window->priv->help_overlay)
|
||||
g_signal_handlers_disconnect_by_func (window->priv->help_overlay,
|
||||
G_CALLBACK (gtk_widget_hide_on_delete), NULL);
|
||||
g_set_object (&window->priv->help_overlay, help_overlay);
|
||||
|
||||
if (!window->priv->help_overlay)
|
||||
return;
|
||||
|
||||
gtk_window_set_modal (GTK_WINDOW (help_overlay), TRUE);
|
||||
gtk_window_set_transient_for (GTK_WINDOW (help_overlay), GTK_WINDOW (window));
|
||||
g_signal_connect (help_overlay, "delete-event",
|
||||
G_CALLBACK (gtk_widget_hide_on_delete), NULL);
|
||||
|
||||
if (!g_action_map_lookup_action (G_ACTION_MAP (window->priv->actions), "show-help-overlay"))
|
||||
{
|
||||
GSimpleAction *action;
|
||||
|
||||
action = g_simple_action_new ("show-help-overlay", NULL);
|
||||
g_signal_connect (action, "activate", G_CALLBACK (show_help_overlay), window);
|
||||
|
||||
g_action_map_add_action (G_ACTION_MAP (window->priv->actions), G_ACTION (action));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_application_window_get_help_overlay:
|
||||
* @window: a #GtkApplicationWindow
|
||||
*
|
||||
* Gets the #GtkShortcutsWindow that has been set up with
|
||||
* a prior call to gtk_application_window_set_help_overlay().
|
||||
*
|
||||
* Returns: (transfer none) (nullable): the help overlay associated with @window, or %NULL
|
||||
*
|
||||
* Since: 3.20
|
||||
*/
|
||||
GtkShortcutsWindow *
|
||||
gtk_application_window_get_help_overlay (GtkApplicationWindow *window)
|
||||
{
|
||||
g_return_val_if_fail (GTK_IS_APPLICATION_WINDOW (window), NULL);
|
||||
|
||||
return window->priv->help_overlay;
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#endif
|
||||
|
||||
#include <gtk/gtkwindow.h>
|
||||
#include <gtk/gtkshortcutswindow.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
@@ -78,6 +79,13 @@ gboolean gtk_application_window_get_show_menubar (GtkApplicationWindow *windo
|
||||
GDK_AVAILABLE_IN_3_6
|
||||
guint gtk_application_window_get_id (GtkApplicationWindow *window);
|
||||
|
||||
GDK_AVAILABLE_IN_3_20
|
||||
void gtk_application_window_set_help_overlay (GtkApplicationWindow *window,
|
||||
GtkShortcutsWindow *help_overlay);
|
||||
GDK_AVAILABLE_IN_3_20
|
||||
GtkShortcutsWindow *
|
||||
gtk_application_window_get_help_overlay (GtkApplicationWindow *window);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GTK_APPLICATION_WINDOW_H__ */
|
||||
|
||||
@@ -39,6 +39,10 @@
|
||||
* derives from #GtkFrame, so it can draw a label and
|
||||
* a frame around the child. The frame will be
|
||||
* “shrink-wrapped” to the size of the child.
|
||||
*
|
||||
* # CSS nodes
|
||||
*
|
||||
* GtkAspectFrame uses a CSS node with name frame.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
@@ -129,6 +133,8 @@ gtk_aspect_frame_class_init (GtkAspectFrameClass *class)
|
||||
P_("Force aspect ratio to match that of the frame's child"),
|
||||
TRUE,
|
||||
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
|
||||
|
||||
gtk_widget_class_set_css_name (GTK_WIDGET_CLASS (class), "frame");
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
+29
-20
@@ -50,6 +50,10 @@
|
||||
* To add pages to an assistant in #GtkBuilder, simply add it as a
|
||||
* child to the GtkAssistant object, and set its child properties
|
||||
* as necessary.
|
||||
*
|
||||
* # CSS nodes
|
||||
*
|
||||
* GtkAssistant has a single CSS node with the name assistant.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
@@ -88,6 +92,7 @@ struct _GtkAssistantPage
|
||||
|
||||
gchar *title;
|
||||
|
||||
GtkWidget *box;
|
||||
GtkWidget *page;
|
||||
GtkWidget *regular_title;
|
||||
GtkWidget *current_title;
|
||||
@@ -184,7 +189,7 @@ static void on_assistant_cancel (GtkWidget *wid
|
||||
GtkAssistant *assistant);
|
||||
static void on_assistant_last (GtkWidget *widget,
|
||||
GtkAssistant *assistant);
|
||||
static void assistant_remove_page_cb (GtkNotebook *notebook,
|
||||
static void assistant_remove_page_cb (GtkContainer *container,
|
||||
GtkWidget *page,
|
||||
GtkAssistant *assistant);
|
||||
|
||||
@@ -654,6 +659,8 @@ gtk_assistant_class_init (GtkAssistantClass *class)
|
||||
gtk_widget_class_bind_template_callback (widget_class, on_assistant_back);
|
||||
gtk_widget_class_bind_template_callback (widget_class, on_assistant_cancel);
|
||||
gtk_widget_class_bind_template_callback (widget_class, on_assistant_last);
|
||||
|
||||
gtk_widget_class_set_css_name (widget_class, "assistant");
|
||||
}
|
||||
|
||||
static gint
|
||||
@@ -1099,9 +1106,9 @@ alternative_button_order (GtkAssistant *assistant)
|
||||
}
|
||||
|
||||
static void
|
||||
on_page_notify_visibility (GtkWidget *widget,
|
||||
GParamSpec *arg,
|
||||
gpointer data)
|
||||
on_page_notify (GtkWidget *widget,
|
||||
GParamSpec *arg,
|
||||
gpointer data)
|
||||
{
|
||||
GtkAssistant *assistant = GTK_ASSISTANT (data);
|
||||
|
||||
@@ -1113,7 +1120,7 @@ on_page_notify_visibility (GtkWidget *widget,
|
||||
}
|
||||
|
||||
static void
|
||||
assistant_remove_page_cb (GtkNotebook *notebook,
|
||||
assistant_remove_page_cb (GtkContainer *container,
|
||||
GtkWidget *page,
|
||||
GtkAssistant *assistant)
|
||||
{
|
||||
@@ -1122,15 +1129,6 @@ assistant_remove_page_cb (GtkNotebook *notebook,
|
||||
GList *page_node;
|
||||
GList *element;
|
||||
|
||||
if (GTK_IS_BOX (page))
|
||||
{
|
||||
GList *children;
|
||||
|
||||
children = gtk_container_get_children (GTK_CONTAINER (page));
|
||||
page = GTK_WIDGET (children->data);
|
||||
g_list_free (children);
|
||||
}
|
||||
|
||||
element = find_page (assistant, page);
|
||||
if (!element)
|
||||
return;
|
||||
@@ -1161,7 +1159,7 @@ assistant_remove_page_cb (GtkNotebook *notebook,
|
||||
}
|
||||
}
|
||||
|
||||
g_signal_handlers_disconnect_by_func (page_info->page, on_page_notify_visibility, assistant);
|
||||
g_signal_handlers_disconnect_by_func (page_info->page, on_page_notify, assistant);
|
||||
|
||||
gtk_size_group_remove_widget (priv->title_size_group, page_info->regular_title);
|
||||
gtk_size_group_remove_widget (priv->title_size_group, page_info->current_title);
|
||||
@@ -1367,7 +1365,7 @@ find_page (GtkAssistant *assistant,
|
||||
while (child)
|
||||
{
|
||||
GtkAssistantPage *page_info = child->data;
|
||||
if (page_info->page == page)
|
||||
if (page_info->page == page || page_info->box == page)
|
||||
return child;
|
||||
|
||||
child = child->next;
|
||||
@@ -1474,8 +1472,8 @@ gtk_assistant_remove (GtkContainer *container,
|
||||
assistant->priv->content != NULL &&
|
||||
gtk_widget_get_parent (box) == assistant->priv->content)
|
||||
{
|
||||
container = (GtkContainer *) assistant->priv->content;
|
||||
gtk_container_remove (container, box);
|
||||
gtk_container_remove (GTK_CONTAINER (box), page);
|
||||
gtk_container_remove (GTK_CONTAINER (assistant->priv->content), box);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1798,7 +1796,13 @@ gtk_assistant_insert_page (GtkAssistant *assistant,
|
||||
gtk_size_group_add_widget (priv->title_size_group, page_info->current_title);
|
||||
|
||||
g_signal_connect (G_OBJECT (page), "notify::visible",
|
||||
G_CALLBACK (on_page_notify_visibility), assistant);
|
||||
G_CALLBACK (on_page_notify), assistant);
|
||||
|
||||
g_signal_connect (G_OBJECT (page), "child-notify::page-title",
|
||||
G_CALLBACK (on_page_notify), assistant);
|
||||
|
||||
g_signal_connect (G_OBJECT (page), "child-notify::page-type",
|
||||
G_CALLBACK (on_page_notify), assistant);
|
||||
|
||||
n_pages = g_list_length (priv->pages);
|
||||
|
||||
@@ -1816,9 +1820,12 @@ gtk_assistant_insert_page (GtkAssistant *assistant,
|
||||
gtk_widget_show (box);
|
||||
gtk_box_pack_start (GTK_BOX (box), page, TRUE, TRUE, 0);
|
||||
g_object_set (box, "margin", 12, NULL);
|
||||
g_signal_connect (box, "remove", G_CALLBACK (assistant_remove_page_cb), assistant);
|
||||
|
||||
gtk_notebook_insert_page (GTK_NOTEBOOK (priv->content), box, NULL, position);
|
||||
|
||||
page_info->box = box;
|
||||
|
||||
if (gtk_widget_get_mapped (GTK_WIDGET (assistant)))
|
||||
{
|
||||
update_buttons_state (assistant);
|
||||
@@ -2018,6 +2025,8 @@ gtk_assistant_set_page_title (GtkAssistant *assistant,
|
||||
gtk_label_set_text ((GtkLabel*) page_info->regular_title, title);
|
||||
gtk_label_set_text ((GtkLabel*) page_info->current_title, title);
|
||||
|
||||
update_title_state (assistant);
|
||||
|
||||
gtk_container_child_notify (GTK_CONTAINER (assistant), page, "title");
|
||||
}
|
||||
|
||||
@@ -2415,7 +2424,7 @@ gtk_assistant_set_page_has_padding (GtkAssistant *assistant,
|
||||
{
|
||||
page_info->has_padding = has_padding;
|
||||
|
||||
g_object_set (gtk_widget_get_parent (page),
|
||||
g_object_set (page_info->box,
|
||||
"margin", has_padding ? 12 : 0,
|
||||
NULL);
|
||||
|
||||
|
||||
+32
-13
@@ -478,7 +478,8 @@ gtk_builder_get_parameters (GtkBuilder *builder,
|
||||
parameter.name = prop->pspec->name;
|
||||
|
||||
if (G_IS_PARAM_SPEC_OBJECT (prop->pspec) &&
|
||||
(G_PARAM_SPEC_VALUE_TYPE (prop->pspec) != GDK_TYPE_PIXBUF))
|
||||
(G_PARAM_SPEC_VALUE_TYPE (prop->pspec) != GDK_TYPE_PIXBUF) &&
|
||||
(G_PARAM_SPEC_VALUE_TYPE (prop->pspec) != G_TYPE_FILE))
|
||||
{
|
||||
GObject *object = g_hash_table_lookup (builder->priv->objects,
|
||||
prop->text->str);
|
||||
@@ -597,14 +598,14 @@ _gtk_builder_add_object (GtkBuilder *builder,
|
||||
g_hash_table_insert (builder->priv->objects, g_strdup (id), g_object_ref (object));
|
||||
}
|
||||
|
||||
static inline void
|
||||
static void
|
||||
gtk_builder_take_bindings (GtkBuilder *builder,
|
||||
GObject *target,
|
||||
GSList *bindings)
|
||||
{
|
||||
GSList *l;
|
||||
|
||||
for (l = bindings; l; l = g_slist_next (l))
|
||||
for (l = bindings; l; l = l->next)
|
||||
{
|
||||
BindingInfo *info = l->data;
|
||||
info->target = target;
|
||||
@@ -926,7 +927,7 @@ gtk_builder_create_bindings (GtkBuilder *builder)
|
||||
{
|
||||
GSList *l;
|
||||
|
||||
for (l = builder->priv->bindings; l; l = g_slist_next (l))
|
||||
for (l = builder->priv->bindings; l; l = l->next)
|
||||
{
|
||||
BindingInfo *info = l->data;
|
||||
GObject *source;
|
||||
@@ -1445,14 +1446,6 @@ gtk_builder_get_object (GtkBuilder *builder,
|
||||
return g_hash_table_lookup (builder->priv->objects, name);
|
||||
}
|
||||
|
||||
static void
|
||||
object_add_to_list (gchar *object_id,
|
||||
GObject *object,
|
||||
GSList **list)
|
||||
{
|
||||
*list = g_slist_prepend (*list, object);
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_builder_get_objects:
|
||||
* @builder: a #GtkBuilder
|
||||
@@ -1471,10 +1464,14 @@ GSList *
|
||||
gtk_builder_get_objects (GtkBuilder *builder)
|
||||
{
|
||||
GSList *objects = NULL;
|
||||
GObject *object;
|
||||
GHashTableIter iter;
|
||||
|
||||
g_return_val_if_fail (GTK_IS_BUILDER (builder), NULL);
|
||||
|
||||
g_hash_table_foreach (builder->priv->objects, (GHFunc)object_add_to_list, &objects);
|
||||
g_hash_table_iter_init (&iter, builder->priv->objects);
|
||||
while (g_hash_table_iter_next (&iter, NULL, (gpointer *)&object))
|
||||
objects = g_slist_prepend (objects, object);
|
||||
|
||||
return g_slist_reverse (objects);
|
||||
}
|
||||
@@ -2035,6 +2032,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
}
|
||||
break;
|
||||
case G_TYPE_OBJECT:
|
||||
case G_TYPE_INTERFACE:
|
||||
if (G_VALUE_HOLDS (value, GDK_TYPE_PIXBUF))
|
||||
{
|
||||
gchar *filename;
|
||||
@@ -2093,6 +2091,27 @@ G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
|
||||
g_free (filename);
|
||||
|
||||
ret = TRUE;
|
||||
}
|
||||
else if (G_VALUE_HOLDS (value, G_TYPE_FILE))
|
||||
{
|
||||
GFile *file;
|
||||
|
||||
if (g_hash_table_contains (builder->priv->objects, string))
|
||||
{
|
||||
g_set_error (error,
|
||||
GTK_BUILDER_ERROR,
|
||||
GTK_BUILDER_ERROR_INVALID_VALUE,
|
||||
"Could not create file '%s': "
|
||||
" '%s' is already used as object id",
|
||||
string, string);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
file = g_file_new_for_uri (string);
|
||||
g_value_set_object (value, file);
|
||||
g_object_unref (G_OBJECT (file));
|
||||
|
||||
ret = TRUE;
|
||||
}
|
||||
else
|
||||
|
||||
+29
-30
@@ -279,7 +279,7 @@ parse_object (GMarkupParseContext *context,
|
||||
"Invalid object type '%s'", object_class);
|
||||
_gtk_builder_prefix_error (data->builder, context, error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (type_func)
|
||||
{
|
||||
@@ -297,8 +297,7 @@ parse_object (GMarkupParseContext *context,
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (object_type == G_TYPE_INVALID)
|
||||
else
|
||||
{
|
||||
error_missing_attribute (data, element_name, "class", error);
|
||||
return;
|
||||
@@ -332,14 +331,13 @@ parse_object (GMarkupParseContext *context,
|
||||
}
|
||||
|
||||
object_info = g_slice_new0 (ObjectInfo);
|
||||
object_info->tag.name = element_name;
|
||||
object_info->type = object_type;
|
||||
object_info->oclass = g_type_class_ref (object_type);
|
||||
object_info->id = (internal_id) ? internal_id : g_strdup (object_id);
|
||||
object_info->constructor = g_strdup (constructor);
|
||||
object_info->parent = (CommonInfo*)child_info;
|
||||
state_push (data, object_info);
|
||||
object_info->tag.name = element_name;
|
||||
|
||||
if (child_info)
|
||||
object_info->parent = (CommonInfo*)child_info;
|
||||
|
||||
line = GPOINTER_TO_INT (g_hash_table_lookup (data->object_ids, object_id));
|
||||
if (line != 0)
|
||||
@@ -438,11 +436,12 @@ parse_template (GMarkupParseContext *context,
|
||||
++data->cur_object_level;
|
||||
|
||||
object_info = g_slice_new0 (ObjectInfo);
|
||||
object_info->tag.name = element_name;
|
||||
object_info->type = parsed_type;
|
||||
object_info->oclass = g_type_class_ref (parsed_type);
|
||||
object_info->id = g_strdup (object_class);
|
||||
object_info->object = gtk_builder_get_object (data->builder, object_class);
|
||||
state_push (data, object_info);
|
||||
object_info->tag.name = element_name;
|
||||
|
||||
line = GPOINTER_TO_INT (g_hash_table_lookup (data->object_ids, object_class));
|
||||
if (line != 0)
|
||||
@@ -465,6 +464,7 @@ static void
|
||||
free_object_info (ObjectInfo *info)
|
||||
{
|
||||
/* Do not free the signal items, which GtkBuilder takes ownership of */
|
||||
g_type_class_unref (info->oclass);
|
||||
g_slist_free (info->signals);
|
||||
g_slist_free_full (info->properties, (GDestroyNotify)free_property_info);
|
||||
g_free (info->constructor);
|
||||
@@ -512,11 +512,11 @@ parse_child (ParserData *data,
|
||||
}
|
||||
|
||||
child_info = g_slice_new0 (ChildInfo);
|
||||
state_push (data, child_info);
|
||||
child_info->tag.name = element_name;
|
||||
child_info->type = g_strdup (type);
|
||||
child_info->internal_child = g_strdup (internal_child);
|
||||
child_info->parent = (CommonInfo*)object_info;
|
||||
state_push (data, child_info);
|
||||
|
||||
object_info->object = builder_construct (data, object_info, error);
|
||||
}
|
||||
@@ -546,8 +546,7 @@ parse_property (ParserData *data,
|
||||
gboolean translatable = FALSE;
|
||||
ObjectInfo *object_info;
|
||||
GParamSpec *pspec = NULL;
|
||||
GObjectClass *oclass;
|
||||
gchar *canonical;
|
||||
gint line, col;
|
||||
|
||||
object_info = state_peek_info (data, ObjectInfo);
|
||||
if (!object_info ||
|
||||
@@ -572,13 +571,7 @@ parse_property (ParserData *data,
|
||||
return;
|
||||
}
|
||||
|
||||
oclass = g_type_class_ref (object_info->type);
|
||||
canonical = g_strdelimit (g_strdup (name), "_", '-');
|
||||
|
||||
g_assert (oclass != NULL);
|
||||
pspec = g_object_class_find_property (oclass, canonical);
|
||||
g_type_class_unref (oclass);
|
||||
g_free (canonical);
|
||||
pspec = g_object_class_find_property (object_info->oclass, name);
|
||||
|
||||
if (!pspec)
|
||||
{
|
||||
@@ -600,15 +593,20 @@ parse_property (ParserData *data,
|
||||
}
|
||||
}
|
||||
|
||||
g_markup_parse_context_get_position (data->ctx, &line, &col);
|
||||
|
||||
if (bind_source && bind_property)
|
||||
{
|
||||
BindingInfo *binfo = g_slice_new0 (BindingInfo);
|
||||
BindingInfo *binfo;
|
||||
|
||||
binfo = g_slice_new (BindingInfo);
|
||||
binfo->target = NULL;
|
||||
binfo->target_pspec = pspec;
|
||||
binfo->source = g_strdup (bind_source);
|
||||
binfo->source_property = g_strdup (bind_property);
|
||||
binfo->flags = bind_flags;
|
||||
g_markup_parse_context_get_position (data->ctx, &binfo->line, &binfo->col);
|
||||
binfo->line = line;
|
||||
binfo->col = col;
|
||||
|
||||
object_info->bindings = g_slist_prepend (object_info->bindings, binfo);
|
||||
}
|
||||
@@ -620,16 +618,17 @@ parse_property (ParserData *data,
|
||||
return;
|
||||
}
|
||||
|
||||
info = g_slice_new0 (PropertyInfo);
|
||||
info = g_slice_new (PropertyInfo);
|
||||
info->tag.name = element_name;
|
||||
info->pspec = pspec;
|
||||
info->text = g_string_new ("");
|
||||
info->translatable = translatable;
|
||||
info->bound = (bind_source && bind_property);
|
||||
info->context = g_strdup (context);
|
||||
info->text = g_string_new ("");
|
||||
state_push (data, info);
|
||||
info->line = line;
|
||||
info->col = col;
|
||||
|
||||
info->tag.name = element_name;
|
||||
g_markup_parse_context_get_position (data->ctx, &info->line, &info->col);
|
||||
state_push (data, info);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1147,11 +1146,11 @@ end_element (GMarkupParseContext *context,
|
||||
/* Called for character data */
|
||||
/* text is not nul-terminated */
|
||||
static void
|
||||
text (GMarkupParseContext *context,
|
||||
const gchar *text,
|
||||
gsize text_len,
|
||||
gpointer user_data,
|
||||
GError **error)
|
||||
text (GMarkupParseContext *context,
|
||||
const gchar *text,
|
||||
gsize text_len,
|
||||
gpointer user_data,
|
||||
GError **error)
|
||||
{
|
||||
ParserData *data = (ParserData*)user_data;
|
||||
CommonInfo *info;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user