Compare commits

..

103 Commits

Author SHA1 Message Date
Alexander Larsson 47c704b141 css shadow: Add extra slop to the blur clipping
Turns out our blurring function isn't very nice, it has a lot
of energy past the blur radius, so clipping at exactly the
blur radius causes ugly gradient stops. This just adds 4
extra pixels of slop, which makes this better in most cases.
2013-05-06 16:08:39 +02:00
Alexander Larsson c0ffb9635b css shadows: Split up rendering of shadows
We split up the rendering of blurred shadows into 9 parts, the
corners, the sides and the rest. This lets us only blur the "blurry"
part, and it lets us completely skip blurry parts that are fully
clipped.
2013-05-06 15:33:51 +02:00
Alexander Larsson e4ec818cba css shadows: Exit early if clip is empty 2013-05-06 14:54:37 +02:00
Alexander Larsson 9f428377dc GtkCssShadowValue: Break out the shadow rendering code
This makes it easier to call it multiple times which we
want to do later.
2013-05-06 09:48:10 +02:00
Alexander Larsson 8bb0ac0521 css: Clip outset box-shadow to outside of box
As per css3-background 7.2. Drop Shadows: the ‘box-shadow’ property:

  An outer box-shadow casts a shadow as if the border-box of the element
  were opaque. The shadow is drawn outside the border edge only: it
  is clipped inside the border-box of the element.

Also verified vs firefox behaviour.
2013-05-03 12:50:18 +02:00
Matthias Clasen 2b6c684569 Make it possible to finalize theming engines
This was broken since forever. Good that we never finalize
theme engines...
2013-05-02 21:36:45 -04:00
Matthias Clasen c538bdc7dc GtkInvisible behaves like GtkWindow
As far as refcounting is concerned, invisibles are like
windows: you have to destroy them.
2013-05-02 20:43:34 -04:00
Matthias Clasen b980057764 Only check for finalization after a grace period
This makes the file chooser pass this test
2013-05-02 20:42:24 -04:00
Matthias Clasen 1afca5510a Prevent a segfault if GtkAppChooserDialog gets disposed early
If the async call is finished after the dialog is already disposed,
bad things happen. Prevent that by marking the dialog as dismissed
in this case.
2013-05-02 20:00:49 -04:00
Benjamin Otte 01c810b4d7 gdk: Remove new gdk_display_manager_peek() API
It's not necessary anymore because gdk_display_manager_get() always
succeeds and the value is independant of when it was called as it's no
longer backend specific.
2013-05-02 16:27:47 +02:00
Benjamin Otte 43e6b3aa03 window: Handle attach widget disappearing without weak pointers
Fixes the window not emitting a "notify::attached-to" signal when the
attach-widget goes away.
2013-05-02 16:26:37 +02:00
Benjamin Otte f7ee5450e1 displaymanager: Remove GInitable implementation
This is not needed anymore, as only one type exists and that type can
always be instantiated.
2013-05-02 16:17:30 +02:00
Benjamin Otte d67880bf72 broadway: Remove displaymanager implementation
This is an API break, but the broadway backend is unsupported, so we can
get away with it.
2013-05-02 16:15:22 +02:00
Benjamin Otte 7470a280da wayland: Remove displaymanager implementation
This is an API break, but the wayland backend is unsupported, so we can
get away with it.
2013-05-02 16:14:59 +02:00
Benjamin Otte 7c027d51d8 displaymanager: Don't create backend-specific display managers
Just create a backend-agnostic displaymanager. Creating the displays
later on determines the backend in use.
2013-05-02 16:12:04 +02:00
Benjamin Otte 632ee007a4 displaymanager: Copy logic to display creation
Use the same logic for display creation in
gdk_display_manager_open_display() that is used for displaymanager
creation.
2013-05-02 16:06:21 +02:00
Benjamin Otte f3a5ad32f3 quartz: Move initialization code to display_class_init
This follows the same reasoning as the X11 backend in commit
0122a9da8e
2013-05-02 15:43:35 +02:00
Benjamin Otte 8762791e82 win32: Call windowing init from display_class_init()
This follows the same reasoning as the X11 backend in commit
0122a9da8e
2013-05-02 15:36:41 +02:00
Benjamin Otte 7cecc8e524 a11y: Remove AtkSelection implementation from combobox
AtkSelection requires that the immediate children of the object are the
selectable items. The combobox however is implemented with just 1 child:
The popup menu.

The popup menu is implementing the selectable interface.

Test are updated to reflect this change.
2013-05-02 15:31:26 +02:00
Matthias Clasen c6894cd606 Try this again
When the hostnamed call is cancelled, we get a G_IO_ERROR_CANCELLED
error back. Handle it properly.
2013-05-02 09:29:35 -04:00
Matthias Clasen f7f63ae3ee Revert "Remove a superfluous ref"
This reverts commit f326c0eac8.

Grr, turns out that cancelling is not that reliable :-(
2013-05-02 08:23:58 -04:00
Matthias Clasen 117c86d08a Clear list of attached windows when disposing a widget
We were silently relying on everybody to detach their windows,
and would leak memory otherwise.
2013-05-02 08:02:40 -04:00
Matthias Clasen fb08a26acd GtkWindow: use a weak ref to keep track of attach_widget
Taking a full reference of the attach widget creates a reference
cycle, and keeps the attach_widget alive longer than it should.
2013-05-02 08:01:14 -04:00
Matthias Clasen f326c0eac8 Remove a superfluous ref
If we cancel the call in dispose, no need to ref the object
we pass as userdata. Avoids the risk of leaking the ref if
the call is actually canceled.
2013-05-02 05:53:40 -04:00
Matthias Clasen 4dc01aca43 Fix build 2013-05-02 05:37:58 -04:00
Matthias Clasen 6c79fb72bd Revert "Temporarily remove window-border reftest"
This reverts commit cf6695088e.
2013-05-01 22:23:11 -04:00
Matthias Clasen e399798da8 Revert "Disable the filechooser template tests"
This reverts commit 17b9733372.
2013-05-01 22:22:22 -04:00
Matthias Clasen 8eeb379f7c Revert "Disable the object-finalize test for now"
This reverts commit a021dc793c.
2013-05-01 22:22:09 -04:00
Matthias Clasen 67595f3614 Reenable display manager tests
Still broken, but they test the right thing.
2013-05-01 22:20:58 -04:00
Matthias Clasen 43b42704c5 Bump version 2013-05-01 22:06:46 -04:00
Matthias Clasen 3c7fbe237d Remove window-border tests from makefile too 2013-05-01 21:43:19 -04:00
Matthias Clasen 0d49b97fce Silence a compiler warning 2013-05-01 21:35:39 -04:00
Matthias Clasen 286d3466a1 Revert "Temporarily remove button-wrapping reftest"
This reverts commit 851b631c4e.
2013-05-01 21:31:12 -04:00
Matthias Clasen 78189bf5e0 Fix up doc sections 2013-05-01 21:27:25 -04:00
Matthias Clasen 210451e86f Minor doc comment fix 2013-05-01 21:27:06 -04:00
Matthias Clasen 3f397d6b38 Make gtkplacessidebar.h look like a gtk header 2013-05-01 21:23:55 -04:00
Matthias Clasen 2f0a5dd541 GtkPlacesSidebar: Correct all since tags 2013-05-01 21:19:37 -04:00
Matthias Clasen e9e4c8b168 Disable broken picker a11y test
The GtkComboBox accessible implementation is pretty broken,
and it shows through in this a11y test. Disable it for now.
2013-05-01 21:03:55 -04:00
Matthias Clasen b84b933cac Update a few a11y test results 2013-05-01 19:07:10 -04:00
Matthias Clasen 51bbb76d35 Fix image-load-from-file reftest
Need to reset css here to avoid theme interference.
2013-05-01 19:07:10 -04:00
Matthias Clasen 3605e6c900 Temporarily remove grid-span reftest
This was testing grid size allocation changes that had to be
reverted because they broke gnumeric.
2013-05-01 19:07:10 -04:00
Matthias Clasen cf6695088e Temporarily remove window-border reftest
It is broken by unfinished csd changes.
2013-05-01 19:07:10 -04:00
Matthias Clasen 851b631c4e Temporarily remove button-wrapping reftest
Its broken by unsettled GtkBin size allocation changes.
2013-05-01 19:07:10 -04:00
Piotr Drąg 0f9c43b569 Updated POTFILES.skip 2013-05-01 23:48:33 +02:00
Benjamin Otte 327a164744 paned: Fixup recent commit
d90e3670ce had a bunch of embarrassing
bugs.

Fixes paned-undersized reftest.
2013-05-01 23:26:27 +02:00
Benjamin Otte a30b84f522 wayland: Don't add/remove displays manually
This code is handled by GdkDisplay itself these days.
2013-05-01 18:12:38 +02:00
Benjamin Otte 0122a9da8e x11: Move initialization code
Move it from GdkDisplayManagerX11.init to GdkDisplay.class_init.

This shouldn't cause any problems, but who knows, so keep this patch
small.

Reason for this is the unification of display managers.
2013-05-01 18:11:26 +02:00
Benjamin Otte 2d35f7a8e1 tests: make deprecated functions not warn
We still want to test them though.
2013-05-01 17:50:14 +02:00
Benjamin Otte 61f47829ba tests: Comment out unused functions 2013-05-01 17:46:50 +02:00
Benjamin Otte 2d29c4a43f window: last size is more important than default size
reorder size computation code to reflect that.

https://bugzilla.gnome.org/show_bug.cgi?id=696882
2013-05-01 16:41:12 +02:00
Benjamin Otte 01f7ed1d07 window: Deprecate gtk_window_reshow_with_initial_size() 2013-05-01 16:41:12 +02:00
Benjamin Otte d90e3670ce paned: Correctly compute child sizes in size requests 2013-05-01 16:41:12 +02:00
Benjamin Otte 6146bf7a32 gtkprivate: #define OPPOSITE_ORIENTATION
and use it
2013-05-01 16:41:11 +02:00
Benjamin Otte ea98c61f3c paned: Split size request code
The code is pretty different for both cases, so better split things
here.
2013-05-01 16:41:11 +02:00
Benjamin Otte 9c2eb4f233 paned: Split out a function 2013-05-01 16:41:11 +02:00
Benjamin Otte cb99cd2052 button: Rework size request/allocation code
- Split out a common function
- Implement hfw properly.
2013-05-01 16:41:11 +02:00
Benjamin Otte 41e8d3df6d widget: Improve debug output 2013-05-01 16:41:11 +02:00
Benjamin Otte 01fe4ce7f4 button: Use _gtk_widget_get_preferred_size_for_size()
This was accidently lost when merging baseline support.
2013-05-01 16:41:11 +02:00
Benjamin Otte 1349292e47 widget: Adapt _gtk_widget_get_preferred_size_for_size()
... for baseline support byu taking two extra (possible NULL) arguments.
2013-05-01 16:41:11 +02:00
Benjamin Otte 8f06590712 tests: Add reftest for broken button sizing
https://bugzilla.gnome.org/show_bug.cgi?id=698433
2013-05-01 16:41:11 +02:00
Matthias Clasen 17b9733372 Disable the filechooser template tests
The places sidebar breaks the finalization checks in these tests
https://bugzilla.gnome.org/show_bug.cgi?id=699393
2013-05-01 10:28:53 -04:00
Matthias Clasen a021dc793c Disable the object-finalize test for now
GtkPlacesSidebar breaks this:
https://bugzilla.gnome.org/show_bug.cgi?id=699393
2013-05-01 10:28:03 -04:00
Matthias Clasen 032636f3ea Add missing symbols 2013-05-01 10:27:48 -04:00
Matthias Clasen 4f9a71d286 Comment out broken tests
Tsk, tsk. These tests were broken in the recent display manager
changes.  Please run make check after major refactoring.
2013-05-01 09:41:11 -04:00
Matthias Clasen e30d5acc60 Avoid an accidental export 2013-05-01 08:46:50 -04:00
Matthias Clasen b01c69a018 Updates 2013-05-01 08:29:01 -04:00
Hib Eris 4dcd49352b Revert "Don't build gtk-launch when gio-unix is not available"
The gtk-launch tool can be build without gio-unix (although it
will not really do much without an alternative implementation for
g_desktop_app_info).

So there is no need to not build gtk-launch anymore.

This reverts commit 9a1235bf0d.

https://bugzilla.gnome.org/show_bug.cgi?id=682824
2013-05-01 07:39:36 +02:00
Milo Casagrande 11c9c70673 [l10n] Updated Italian translation. 2013-04-30 19:22:41 +02:00
Milo Casagrande c67eb10fcb [l10n] Updated Italian translation. 2013-04-29 23:01:03 +02:00
Matthias Clasen f47e578737 Fix a typo
Modifed should be Modified.
https://bugzilla.gnome.org/show_bug.cgi?id=699225
2013-04-29 13:08:18 -04:00
Alexander Larsson 8cb78d82d6 gtksizerequestcache: Fix typo that lead to crash/leak
We were checking for cache->requests_x but freeing cache->requests_y
which could cause a crash/leak.
2013-04-29 18:17:02 +02:00
David King b8d2806417 docs: Reorder compiler command line for new GCC
Newer versions of GCC/binutils must have the source file come before the
preprocessor and linker flags on the compiler command line, and this is
also compatible with previous versions.

https://bugzilla.gnome.org/show_bug.cgi?id=680241
2013-04-29 07:31:16 +01:00
David King 59c3e7bfe8 docs: Add GtkWidget::show,hide,map,unmap,realize,unrealize
Add gtk-doc comments for several signals on GtkWidget.

https://bugzilla.gnome.org/show_bug.cgi?id=688896
2013-04-29 07:23:46 +01:00
David King 402985077b docs: Add (inout) to requisition of gtk_menu_item_toggle_size_request()
https://bugzilla.gnome.org/show_bug.cgi?id=675571
2013-04-29 07:18:54 +01:00
Matthias Clasen e9f182e37a Fix a few memory leaks wrt to translations
Pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=699016
The fix here is slightly different. We make
_gtk_builder_parser_translate return a const char * instead of
a dup'ed string, and fix up the callers.
2013-04-28 21:43:49 -04:00
Matthias Clasen 13858fde29 GtkGrid: Undo a size allocation tweak
Revert 5e1a06d1b1

This change caused empty rows to 'open up', which was not
intended and causes problems as seen in bug 698660.
2013-04-28 18:46:41 -04:00
Matthias Clasen ef759ef19d Add a testcase for empty grid rows
This adds a testcase described in bug 698660 to testgrid.
2013-04-28 18:46:11 -04:00
Žygimantas Beručka 51a31f9098 Updated Lithuanian translation 2013-04-28 13:24:47 +03:00
Mario Blättermann 0e4b460574 Updated German translation 2013-04-27 22:42:37 +02:00
Matthias Clasen 1f17efb81c Add some tests for GtkWindow
These tests may have some assumptions on reasonable window manager
behaviour.  For now, we just test that the default size of the
window ends up as the allocated size of the content. This test
currently fails with client-side decorations, because we are
not properly discriminating between overall window size and
content size.
2013-04-27 13:41:17 -04:00
Paolo Borelli d35596fe92 GtkImage: do not leak metrics in baseline align
https://bugzilla.gnome.org/show_bug.cgi?id=699020
2013-04-27 13:59:29 +02:00
Rico Tzschichholz b957e16695 gtk: Add COMPOSITE_TEMPLATES to EXTRA_DIST 2013-04-26 09:25:44 +02:00
Owen W. Taylor b72cf9129c wayland: when possible, fill in actual and predicted presentation times
There is currently no Wayland protocol for providing presentation
timestamps or hints about when drawing will be presented onscreen.
However, by assuming the straightforward algorithm used by the
DRM backend to Weston, we can reverse engineer the right values.

https://bugzilla.gnome.org/show_bug.cgi?id=698864
2013-04-25 13:55:03 -04:00
Owen W. Taylor 23031defde wayland: fill in refresh_interval in GdkFrameTimings
Track the outputs that a window is on, and use the refresh rate from
a random one of those outputs for the refresh_interval in
GdkFrameTimings.

https://bugzilla.gnome.org/show_bug.cgi?id=698864
2013-04-25 13:50:01 -04:00
Owen W. Taylor f1ce727b06 GdkWaylandWindow: Consolidate surface creation and destruction code
Combine duplicate code for creating and destroying surfaces.
To make the operation of the destroy() operation more obvious, the
destruction of the (fake) root window at display dispose time is
changed to not be a "foreign" destroy.

https://bugzilla.gnome.org/show_bug.cgi?id=698864
2013-04-25 13:49:47 -04:00
Owen W. Taylor ca120a98e5 GdkWaylandWindow: synchronize frame drawing
Use wl_surface_frame() to get notification when the compositor paints
a frame, and use this to throttle drawing to the compositor's refresh
cycle.

https://bugzilla.gnome.org/show_bug.cgi?id=698864
2013-04-25 13:45:21 -04:00
Owen W. Taylor c71fea568f GdkWindowWayland: make sure we attach the surface when repainting
Lazily creating the cairo surface that backs a window when we
first paint to it means that the call to
gdk_wayland_window_attach_image() in
gdk_wayland_window_process_updates_recurse() wasn't working the
first time a window was painted.

https://bugzilla.gnome.org/show_bug.cgi?id=698864
2013-04-25 13:45:12 -04:00
Owen W. Taylor d5310f9367 GdkWindowWayland: draw, then damage, then commit
When exposing an area, we were individually damaging and committing
each rectangle, *before* drawing. Surprisingly, this almost worked.
Order things right and only commit once.

https://bugzilla.gnome.org/show_bug.cgi?id=698864
2013-04-25 13:45:06 -04:00
Owen W. Taylor a082f4d804 animated-resizing, video-timer: Add missing return value from ::draw
When we connect to GtkWidget::draw, the signal handler should have
a return value. This fixes overdrawing client-side decorations.
2013-04-25 13:44:58 -04:00
Matthias Clasen 8dc090b9b1 GtkStack: improve docs 2013-04-24 22:07:09 -04:00
Matthias Clasen c69d2e4254 Generate new images 2013-04-24 21:56:08 -04:00
Matthias Clasen f3685c5e88 Docs: some widget gallery updates
Add images for Scrollbar, info bar, combo box text, etc.
2013-04-24 21:55:13 -04:00
Matthias Clasen a8a41b52ad GtkStackSwitcher: unset tooltip
It was pointed out to me that we leave the tooltip behind
when setting and unsetting an icon.
2013-04-24 20:10:05 -04:00
Matthias Clasen af49dd33cf GtkNotebook: Consistent boolean handling
Normalize boolean parameters in gtk_notebook_set_tab_reorderable and
gtk_notebook_set_tab_detachable before comparing them. Pointed out in
https://bugzilla.gnome.org/show_bug.cgi?id=697196
2013-04-24 19:58:22 -04:00
Cosimo Cecchi 06c8e8fa43 docs: fix some typos in newly introduced methods 2013-04-24 13:10:54 -04:00
Nik Kalach 95ce57443c [l10n] Update Interlingua translation 2013-04-24 16:03:15 +02:00
Yaron Shahrabani 9544ae08af Updated Hebrew translation. 2013-04-24 10:08:19 +03:00
Yaron Shahrabani 648ef7f7fa Updated Hebrew translation. 2013-04-24 09:45:26 +03:00
Matthias Clasen 661f24736b widget-factory: Add new widgets
Add GtkStack and GtkRevealer to the second page in
gtk3-widget-factory.
2013-04-23 17:39:46 -04:00
Benjamin Otte 174664b235 overlay: Silence gcc warnings 2013-04-23 14:13:51 -04:00
Owen W. Taylor 8c68050af8 tests/scrolling-performance: Add a new test for GtkViewport performance
Add a test that takes four copies of the widget-factory widgets and
scrolls them around to test how smoothly we can scroll and draw.
2013-04-23 14:04:40 -04:00
Owen W. Taylor b7063509f8 tests/animated-resizing: Split frame statistics out into a separate file
Split the code for computing frame rate and latency into a separate file
so we can use it from multiple tests.
2013-04-23 14:04:40 -04:00
Owen W. Taylor 0032b2dc5a GtkSpinButton: don't constantly recreate style contexts for buttons
Cache the style contexts for the up and down panels, instead of recreating
them each time they are drawn or size requested. GtkSpinButtons were
many times slower to draw than other widgets because of the constant
style matching.

https://bugzilla.gnome.org/show_bug.cgi?id=698682
2013-04-23 14:04:39 -04:00
119 changed files with 7361 additions and 6550 deletions
+198
View File
@@ -1,3 +1,201 @@
Overview of Changes in GTK+ 3.7 to 3.9
======================================
* GtkFileChooser:
- Always show fuse-mounted locations in shortcuts
- GtkFileChooserButton has received a lot of fixes and tests have
been added for many of them
* GtkWindow:
- Initial support for client-side decorations has been added. This
is going to be used by default under Wayland. To try it with other
backends, set the GTK_CSD=1 environment variable.
- gtk_window_set_titlebar: A new function that can set a custom,
client-side titlebar on toplevel windows.
* Wayland:
- Use client-side decorations
- Implement maximization
- Improve cursor handling
- Improve multi-monitor handling
- Support most GtkSettings (for now by reading GSettings directly)
- Complete the keymap implementation
- Add support for custom surfaces
- Implement animated cursors
- Support the WAYLAND_SOCKET environment variable
- Implement frame synchronizatio
- Document Wayland-specific APIs
* Broadway:
- Improve window size handling
- Implement frame synchronization
- Add support for password authentication
* New APIs, widgets, feature additions:
- GtkHeaderBar is a new widget similar to a GtkBox, with the extra
feature that it can center a child (typically a title), independent
of the other content.
- GtkPlacesSidebar is the sidebar widget in the file chooser, exported
as a public widget - it will be shared with nautilus.
- GtkStack is an alternative to GtkNotebook for showing one of several
child widgets at a time. It supports animated transitions. Tabs are
not built into this widgets, but instead provided by the separate
GtkStackSwitcher widget.
- GtkRevealer is a new new widget that can hide or show its child
in an animated fashion.
- GtkMenuTracker is a helper object that makes dealing with
GMenuModels easier and more efficient.
- gtk_grid_remove_row/column: New functions to remove whole rows
or columns from a GtkGrid
- Support for composite children has been added to GtkWidget. This
allows to create complex widgets from GtkBuilder ui files. All
complex GTK+ widgets have been converted to use this facility.
- Baseline support was added to the GTK+ size allocation machinery.
Widgets can now export the baseline of the text they contain,
and containers can align their children wrt to their baselines.
* Known problems, feature removals, compatibility caveats:
- Handling of window size is currently in flux, and there are
some known problems with sizes unintentionally changing
- Support for the Motif DND protocol has been dropped
- Client-side decorations still have some issues when drawing
directly on toplevel windows or setting their background
- Support for multiple screens per display has been removed. This
was only ever supported on X11, and is an exceedingly rare setup
nowadays. The display-screen relation is now 1:1, and we will do
some more simplification of displaymanager/display/screen/monitor
APIs.
- gdk_window_get_display has been deprecated
- gtk_widget_push_composite_child has been deprecated - this was
used for anything
- GtkSwitch has been changed to draw focus internally, instead of
reserving space outside the switch for it. This may require some
application adjustment where margins were tweaked to 'correct'
the alignment of switches manually
* Printing:
- Avoid blocking when looking for avahi printers
- Don't link against avahi-gobject, use D-Bus directly
* Bugs fixed:
504901 GtkCellRendererCombo requires click-and-hold
586367 In local_only mode, file chooser should return native pa...
671939 [regression] crash on exit
672018 Need API to set global application state (busy, counters...
674051 Scrolling zoom in view - incorrect image display
674759 GtkLabel: wrong value of "mnemonic-keyval" when "use-mar...
675571 (out) or (inout) annotation possibly missing for gtk_men...
675649 gtk-demo: Fix typo
680241 Instructions on how to build a GTK app won't work with r...
681446 gtkdnd memory leak
685419 gtkprintbackendfile: Infinite loop in _cairo_write()
685420 Critical warnings when GtkPrintJob is released too early
688820 GIcon is a bad interface
688896 Add documentation for GtkWidget::show,hide,map,unmap,rea...
690275 scrolling on other windows is applied when coming back (...
691040 selection is reported incorrectly in file chooser button
692871 Need to expose output information to make GdkScreen API ...
694339 Fix build of GTK+ on Windows
694465 Allow backends to fail during initialisation
695200 Switching apps while a combobox open makes the parent wi...
695228 GdkPixbuf:ERROR:gdk-pixbuf-animation.c:242:gdk_pixbuf_an...
695278 Avoid passing a NULL title to setTitle
695304 GtkTextView: don't popdown a bubble if we don't have one
695312 Initial 'text' set in the non-numeric-only GtkSpinButton...
695375 GtkEntryAccessible: also handle entry icon tooltip NULL ...
695380 gtk_binding_entry_skip broken
695391 wayland documentation section id is "gtk-osx"
695473 treeview: fix a critical warning
695476 Drop the Motif DND protocol
695482 Universal Access panel appears jumbled and horrible afte...
695493 testgtk: issues with the color selection example
695495 testgtk: cursor example segfaults
695497 testgtk: lack of key repeat
695506 gtk-demo: link hovering unreliable
695682 Cannot build docs for wayland-only build
695714 Getting of printer info can hang
695772 Different appearance of menus within Audacious
695783 GtkApplication: Allow passing windows on non-X11 targets
695861 Allow to use custom surfaces for GdkWindows in Wayland
695874 GtkFontChooser docs
695895 Fix the gtk3-demo demo program on Windows
695945 implement minimize / maximize functionality
695948 GtkFontButton sets wrong show-preview-entry
695998 csd: enable shadows in the outer border
696051 vertical grid lines in rtl mode
696138 GtkWidget: some deprecation marks are missing
696171 GtkAssistant highlighted font unreadable
696202 Add GtkSpinner animation back to Win32 theme
696232 win32: do not crash on invalid utf8 conversion
696340 wayland: device list is populated async
696370 GtkOverlay doesn't work on top of GtkClutterEmbed
696429 wayland: Implement animated cursors
696457 gnome-ostree build broken by 3a9de35a6cefddc09aaf000e523...
696468 improve GMenuModel -> GtkMenu conversion
696546 gtk_print_backend_cups_finalize() crashes if cups_get_pr...
696553 Crash in avahi_create_browsers
696561 GtkApplicationWindow rendering broken
696608 css_image_value_parse: returning FALSE in pointer function
696622 gtk option printer widget segfault in epiphany
696623 GtkOverlay with a revealer produces warnings setting a m...
696767 a pair of memory leaks
696882 [regression] GtkWindow changes size after hide/show cycle
697048 GtkTextView: small code improvements
697144 Popup menu mnemonics fixes
697196 gtk_notebook_set_tab_reorderable boolean handling
697200 GtkWindow: notify::attached-to not emitted
697263 Impossible to set window transparency on 3.8
697275 gtk_window_set_default_size() doesn't work anymore
697427 Unreferencing GtkStatusIcon object causes abort
697673 Apps should connect only once when using Wayland
697795 xi2: Improve pointer emulation debug reporting
697886 dnd icon drawing broken on master
697947 A lot of GTK+ apps fail to launch with error "desktop_she...
698181 Document icon-shadow CSS property
698433 Geometry management broken in GtkBin widgets
698682 GtkSpinButton: don't constantly recreate style contexts f...
698864 wayland: improve integration with GdkFrameClock
699020 GtkImage: do not leak metrics in baseline align
699225 typo: Modifed -> Modified
* Translation updates:
Arabic
Aragonese
Assamese
Belarusian
Brazilian Portuguese
British English
Catalan
Catalan (Valencian)
Czech
Danish
Finnish
French
Galician
German
Greek
Hindi
Hungarian
Indonesian
Italian
Kazakh
Korean
Latvian
Malayalam
Odia
Persian
Polish
Punjabi
Russian
Serbian
Simplified Chinese
Slovenian
Tajik
Tamil
Ukrainian
Overview of Changes in GTK+ 3.7.12
==================================
+1 -2
View File
@@ -10,7 +10,7 @@
m4_define([gtk_major_version], [3])
m4_define([gtk_minor_version], [9])
m4_define([gtk_micro_version], [0])
m4_define([gtk_micro_version], [1])
m4_define([gtk_interface_age], [0])
m4_define([gtk_binary_age],
[m4_eval(100 * gtk_minor_version + gtk_micro_version)])
@@ -1242,7 +1242,6 @@ if test "$have_gio_unix" = "yes"; then
else
GDK_GIO_PACKAGE=gio-2.0
fi
AM_CONDITIONAL(HAVE_GIO_UNIX, test "$have_gio_unix" = "yes")
# Check for Pango flags
+38
View File
@@ -78,6 +78,35 @@ on_page_toggled (GtkToggleButton *button,
gtk_notebook_set_current_page (pages, page);
}
static void
spin_value_changed (GtkAdjustment *adjustment, GtkWidget *label)
{
GtkWidget *w;
gint v;
gchar *text;
v = (int)gtk_adjustment_get_value (adjustment);
if ((v % 3) == 0)
{
text = g_strdup_printf ("%d is a multiple of 3", v);
gtk_label_set_label (GTK_LABEL (label), text);
g_free (text);
}
w = gtk_widget_get_ancestor (label, GTK_TYPE_REVEALER);
gtk_revealer_set_reveal_child (GTK_REVEALER (w), (v % 3) == 0);
}
static void
dismiss (GtkWidget *button)
{
GtkWidget *w;
w = gtk_widget_get_ancestor (button, GTK_TYPE_REVEALER);
gtk_revealer_set_reveal_child (GTK_REVEALER (w), FALSE);
}
int
main (int argc, char *argv[])
{
@@ -86,6 +115,7 @@ main (int argc, char *argv[])
GtkWidget *widget;
GtkWidget *notebook;
gboolean dark = FALSE;
GtkAdjustment *adj;
gtk_init (&argc, &argv);
@@ -114,6 +144,14 @@ main (int argc, char *argv[])
widget = (GtkWidget*) gtk_builder_get_object (builder, "aboutmenuitem");
g_signal_connect (widget, "activate", G_CALLBACK (show_about), window);
widget = (GtkWidget*) gtk_builder_get_object (builder, "page2dismiss");
g_signal_connect (widget, "clicked", G_CALLBACK (dismiss), NULL);
widget = (GtkWidget*) gtk_builder_get_object (builder, "page2note");
adj = (GtkAdjustment *) gtk_builder_get_object (builder, "adjustment2");
g_signal_connect (adj, "value-changed",
G_CALLBACK (spin_value_changed), widget);
g_object_unref (G_OBJECT (builder));
gtk_widget_show (window);
+160 -15
View File
@@ -54,6 +54,23 @@ Vestibulum in tortor diam, quis aliquet quam. Praesent ut justo neque, tempus ru
Duis eu lectus quam. Vivamus eget metus a mauris molestie venenatis pulvinar eleifend nisi.
Nulla facilisi. Pellentesque at dolor sit amet purus dapibus pulvinar molestie quis neque.
Suspendisse feugiat quam quis dolor accumsan cursus. </property>
</object>
<object class="GtkTextBuffer" id="textbuffer2">
<property name="text">* Translation updates:
Aragonese
Assamese
Basque
Brazilian Portuguese
Dutch
German
Hebrew
Hungarian
Polish
Portuguese
Serbian
Slovenian
Spanish
Uyghur</property>
</object>
<object class="GtkAccelGroup" id="accelgroup1"/>
<object class="GtkWindow" id="window">
@@ -2146,30 +2163,158 @@ Suspendisse feugiat quam quis dolor accumsan cursus. </property>
</object>
</child>
<child>
<object class="GtkBox" id="page2">
<object class="GtkOverlay" id="page2">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<property name="border-width">6</property>
<child>
<object class="GtkBox" id="page2box1">
<child type="overlay">
<object class="GtkRevealer" id="page2revealer">
<property name="visible">True</property>
<property name="orientation">horizontal</property>
<property name="spacing">4</property>
<property name="halign">center</property>
<property name="valign">start</property>
<child>
<object class="GtkSpinButton" id="verticalspin1">
<object class="GtkFrame" id="page2frame">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment2</property>
<property name="margin-top">2</property>
<child>
<object class="GtkBox" id="page2box">
<property name="visible">True</property>
<property name="margin-top">10</property>
<property name="margin-bottom">10</property>
<property name="margin-left">10</property>
<property name="margin-right">10</property>
<property name="spacing">20</property>
<child>
<object class="GtkLabel" id="page2note">
<property name="visible">True</property>
<property name="hexpand">True</property>
<property name="halign">start</property>
<property name="label">NEWS!</property>
</object>
</child>
<child>
<object class="GtkButton" id="page2dismiss">
<property name="visible">True</property>
<child>
<object class="GtkImage" id="page2dismissi">
<property name="visible">True</property>
<property name="icon-name">window-close-symbolic</property>
<property name="icon-size">0</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkGrid" id="page2grid">
<property name="visible">True</property>
<property name="column-homogeneous">True</property>
<property name="row-spacing">6</property>
<property name="column-spacing">6</property>
<property name="border-width">6</property>
<child>
<object class="GtkSpinButton" id="verticalspin2">
<object class="GtkBox" id="page2box1">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment1</property>
<property name="orientation">horizontal</property>
<property name="spacing">4</property>
<child>
<object class="GtkSpinButton" id="verticalspin1">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment2</property>
</object>
</child>
<child>
<object class="GtkSpinButton" id="verticalspin2">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment1</property>
</object>
</child>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="filler1">
<property name="visible">True</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="filler2">
<property name="visible">True</property>
</object>
<packing>
<property name="left-attach">2</property>
<property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkStackSwitcher" id="switcher">
<property name="visible">True</property>
<property name="stack">stack</property>
<property name="halign">center</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame">
<property name="visible">True</property>
<property name="hexpand">False</property>
<child>
<object class="GtkStack" id="stack">
<property name="visible">True</property>
<property name="transition-type">crossfade</property>
<property name="transition-duration">1000</property>
<child>
<object class="GtkScrolledWindow" id="swo">
<property name="visible">True</property>
<property name="shadow-type">none</property>
<child>
<object class="GtkTextView" id="tvo">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="buffer">textbuffer2</property>
</object>
</child>
</object>
<packing>
<property name="name">page1</property>
<property name="icon-name">document-open-recent-symbolic</property>
<property name="title">News</property>
</packing>
</child>
<child>
<object class="GtkImage" id="imageo">
<property name="visible">True</property>
<property name="resource">/logos/gtk-logo-256.png</property>
</object>
<packing>
<property name="name">page2</property>
<property name="icon-name">system-shutdown-symbolic</property>
<property name="title">Logo</property>
</packing>
</child>
</object>
</child>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">2</property>
</packing>
</child>
</object>
</child>
+5 -2
View File
@@ -301,7 +301,7 @@ HTML_IMAGES = \
$(srcdir)/images/appchooserdialog.png \
$(srcdir)/images/assistant.png \
$(srcdir)/images/box-packing.png \
$(srcdir)/images/box-expand.png \
$(srcdir)/images/box-expand.png \
$(srcdir)/images/button.png \
$(srcdir)/images/check-button.png \
$(srcdir)/images/color-button.png \
@@ -309,8 +309,8 @@ HTML_IMAGES = \
$(srcdir)/images/colorchooser.png \
$(srcdir)/images/combo-box.png \
$(srcdir)/images/combo-box-entry.png \
$(srcdir)/images/combo-box-text.png \
$(srcdir)/images/entry.png \
$(srcdir)/images/search-entry.png \
$(srcdir)/images/figure-hierarchical-drawing.png \
$(srcdir)/images/figure-windowed-label.png \
$(srcdir)/images/file-button.png \
@@ -321,6 +321,7 @@ HTML_IMAGES = \
$(srcdir)/images/frame.png \
$(srcdir)/images/icon-view.png \
$(srcdir)/images/image.png \
$(srcdir)/images/info-bar.png \
$(srcdir)/images/label.png \
$(srcdir)/images/levelbar.png \
$(srcdir)/images/link-button.png \
@@ -342,7 +343,9 @@ HTML_IMAGES = \
$(srcdir)/images/radio-group.png \
$(srcdir)/images/recentchooserdialog.png \
$(srcdir)/images/scales.png \
$(srcdir)/images/scrollbar.png \
$(srcdir)/images/scrolledwindow.png \
$(srcdir)/images/search-entry.png \
$(srcdir)/images/separator.png \
$(srcdir)/images/spinbutton.png \
$(srcdir)/images/spinner.png \
+3 -3
View File
@@ -42,7 +42,7 @@ feature of the shell. If you enclose a command in backticks
substituted into the command line before execution. So to compile
a GTK+ Hello, World, you would type the following:
<programlisting>
$ cc `pkg-config --cflags --libs gtk+-3.0` hello.c -o hello
$ cc `pkg-config --cflags gtk+-3.0` hello.c -o hello `pkg-config --libs gtk+-3.0`
</programlisting>
</para>
@@ -67,7 +67,7 @@ this range will trigger compiler warnings.
Here is how you would compile hello.c if you want to allow it
to use symbols that were not deprecated in 3.2:
<programlisting>
$ cc -DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_2 `pkg-config --cflags --libs gtk+-3.0` hello.c -o hello
$ cc `pkg-config --cflags gtk+-3.0` -DGDK_VERSION_MIN_REQIRED=GDK_VERSION_3_2 hello.c -o hello `pkg-config --libs gtk+-3.0`
</programlisting>
</para>
@@ -75,7 +75,7 @@ $ cc -DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_2 `pkg-config --cflags --libs gtk+
And here is how you would compile hello.c if you don't want
it to use any symbols that were introduced after 3.4:
<programlisting>
$ cc -DGDK_VERSION_MAX_ALLOWED=GDK_VERSION_3_4 `pkg-config --cflags --libs gtk+-3.0` hello.c -o hello
$ cc `pkg-config --cflags gtk+-3.0` -DGDK_VERSION_MAX_ALLOWED=GDK_VERSION_3_4 hello.c -o hello `pkg-config --libs gtk+-3.0`
</programlisting>
</para>
+5 -2
View File
@@ -2487,7 +2487,7 @@ gtk_paned_get_type
<SECTION>
<FILE>gtkplacessidebar</FILE>
<TITLE>GtkPlacesSidebar</FILE>
<TITLE>GtkPlacesSidebar</TITLE>
GtkPlacesSidebar
GtkPlacesOpenFlags
gtk_places_sidebar_new
@@ -2495,11 +2495,14 @@ gtk_places_sidebar_set_open_flags
gtk_places_sidebar_set_location
gtk_places_sidebar_get_location
gtk_places_sidebar_set_show_desktop
gtk_places_sidebar_set_accept_uri_drops
gtk_places_sidebar_add_shortcut
gtk_places_sidebar_remove_shortcut
gtk_places_sidebar_list_shortcuts
gtk_places_sidebar_get_nth_bookmark
gtk_places_sidebar_get_open_flags
gtk_places_sidebar_get_show_connect_to_server
gtk_places_sidebar_get_show_desktop
gtk_places_sidebar_set_show_connect_to_server
<SUBSECTION Standard>
GTK_PLACES_SIDEBAR
GTK_IS_PLACES_SIDEBAR
Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

+12
View File
@@ -18,6 +18,9 @@
<link linkend="GtkComboBox">
<inlinegraphic fileref="combo-box.png" format="PNG"></inlinegraphic>
</link>
<link linkend="GtkComboBoxText">
<inlinegraphic fileref="combo-box-text.png" format="PNG"></inlinegraphic>
</link>
<link linkend="GtkEntry">
<inlinegraphic fileref="entry.png" format="PNG"></inlinegraphic>
</link>
@@ -147,4 +150,13 @@
<link linkend="GtkFontChooserDialog">
<inlinegraphic fileref="fontchooser.png" format="PNG"></inlinegraphic>
</link>
<link linkend="GtkAboutDialog">
<inlinegraphic fileref="aboutdialog.png" format="PNG"></inlinegraphic>
</link>
<link linkend="GtkInfoBar">
<inlinegraphic fileref="info-bar.png" format="PNG"></inlinegraphic>
</link>
<link linkend="GtkScrollbar">
<inlinegraphic fileref="scrollbar.png" format="PNG"></inlinegraphic>
</link>
</para>
+76 -16
View File
@@ -400,11 +400,6 @@ create_combo_box_entry (void)
GtkWidget *align;
GtkWidget *child;
GtkTreeModel *model;
gtk_rc_parse_string ("style \"combo-box-entry-style\" {\n"
" GtkComboBox::appears-as-list = 1\n"
"}\n"
"widget_class \"GtkComboBoxEntry\" style \"combo-box-entry-style\"\n" );
model = (GtkTreeModel *)gtk_list_store_new (1, G_TYPE_STRING);
widget = g_object_new (GTK_TYPE_COMBO_BOX,
@@ -427,14 +422,22 @@ create_combo_box (void)
{
GtkWidget *widget;
GtkWidget *align;
gtk_rc_parse_string ("style \"combo-box-style\" {\n"
" GtkComboBox::appears-as-list = 0\n"
"}\n"
"widget_class \"GtkComboBox\" style \"combo-box-style\"\n" );
GtkCellRenderer *cell;
GtkListStore *store;
widget = gtk_combo_box_new ();
gtk_cell_layout_clear (GTK_CELL_LAYOUT (widget));
cell = gtk_cell_renderer_pixbuf_new ();
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (widget), cell, FALSE);
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (widget), cell, "icon-name", 0, NULL);
cell = gtk_cell_renderer_text_new ();
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (widget), cell, FALSE);
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (widget), cell, "text", 1, NULL);
store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING);
gtk_list_store_insert_with_values (store, NULL, -1, 0, "edit-delete", 1, "Combo Box", -1);
gtk_combo_box_set_model (GTK_COMBO_BOX (widget), GTK_TREE_MODEL (store));
widget = gtk_combo_box_text_new ();
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Combo Box");
gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0);
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
gtk_container_add (GTK_CONTAINER (align), widget);
@@ -442,6 +445,38 @@ create_combo_box (void)
return new_widget_info ("combo-box", align, SMALL);
}
static WidgetInfo *
create_combo_box_text (void)
{
GtkWidget *widget;
GtkWidget *align;
widget = gtk_combo_box_text_new ();
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Combo Box Text");
gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0);
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
gtk_container_add (GTK_CONTAINER (align), widget);
return new_widget_info ("combo-box-text", align, SMALL);
}
static WidgetInfo *
create_info_bar (void)
{
GtkWidget *widget;
GtkWidget *align;
widget = gtk_info_bar_new_with_buttons ("Close", 0, NULL);
gtk_info_bar_set_message_type (GTK_INFO_BAR (widget), GTK_MESSAGE_INFO);
gtk_container_add (GTK_CONTAINER (gtk_info_bar_get_content_area (GTK_INFO_BAR (widget))),
gtk_label_new ("Info Bar"));
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
gtk_container_add (GTK_CONTAINER (align), widget);
return new_widget_info ("info-bar", align, SMALL);
}
static WidgetInfo *
create_recent_chooser_dialog (void)
{
@@ -679,12 +714,12 @@ create_panes (void)
pane = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
gtk_paned_pack1 (GTK_PANED (pane),
g_object_new (GTK_TYPE_FRAME,
"shadow", GTK_SHADOW_IN,
"shadow-type", GTK_SHADOW_IN,
NULL),
FALSE, FALSE);
gtk_paned_pack2 (GTK_PANED (pane),
g_object_new (GTK_TYPE_FRAME,
"shadow", GTK_SHADOW_IN,
"shadow-type", GTK_SHADOW_IN,
NULL),
FALSE, FALSE);
gtk_box_pack_start (GTK_BOX (hbox),
@@ -693,12 +728,12 @@ create_panes (void)
pane = gtk_paned_new (GTK_ORIENTATION_VERTICAL);
gtk_paned_pack1 (GTK_PANED (pane),
g_object_new (GTK_TYPE_FRAME,
"shadow", GTK_SHADOW_IN,
"shadow-type", GTK_SHADOW_IN,
NULL),
FALSE, FALSE);
gtk_paned_pack2 (GTK_PANED (pane),
g_object_new (GTK_TYPE_FRAME,
"shadow", GTK_SHADOW_IN,
"shadow-type", GTK_SHADOW_IN,
NULL),
FALSE, FALSE);
gtk_box_pack_start (GTK_BOX (hbox),
@@ -1022,6 +1057,8 @@ create_scrolledwindow (void)
GtkWidget *scrolledwin, *label;
scrolledwin = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwin),
GTK_POLICY_ALWAYS, GTK_POLICY_ALWAYS);
label = gtk_label_new ("Scrolled Window");
gtk_container_add (GTK_CONTAINER (scrolledwin), label);
@@ -1029,6 +1066,26 @@ create_scrolledwindow (void)
return new_widget_info ("scrolledwindow", scrolledwin, MEDIUM);
}
static WidgetInfo *
create_scrollbar (void)
{
GtkWidget *widget;
GtkWidget *vbox, *align;
widget = gtk_scrollbar_new (GTK_ORIENTATION_HORIZONTAL, NULL);
gtk_widget_set_size_request (widget, 100, -1);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
gtk_container_add (GTK_CONTAINER (align), widget);
gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_label_new ("Scrollbar"),
FALSE, FALSE, 0);
return new_widget_info ("scrollbar", vbox, SMALL);
}
static WidgetInfo *
create_spinbutton (void)
{
@@ -1257,6 +1314,7 @@ get_all_widgets (void)
retval = g_list_prepend (retval, create_color_button ());
retval = g_list_prepend (retval, create_combo_box ());
retval = g_list_prepend (retval, create_combo_box_entry ());
retval = g_list_prepend (retval, create_combo_box_text ());
retval = g_list_prepend (retval, create_entry ());
retval = g_list_prepend (retval, create_file_button ());
retval = g_list_prepend (retval, create_font_button ());
@@ -1273,6 +1331,7 @@ get_all_widgets (void)
retval = g_list_prepend (retval, create_radio ());
retval = g_list_prepend (retval, create_scales ());
retval = g_list_prepend (retval, create_scrolledwindow ());
retval = g_list_prepend (retval, create_scrollbar ());
retval = g_list_prepend (retval, create_separator ());
retval = g_list_prepend (retval, create_spinbutton ());
retval = g_list_prepend (retval, create_statusbar ());
@@ -1298,6 +1357,7 @@ get_all_widgets (void)
retval = g_list_prepend (retval, create_menu_button ());
retval = g_list_prepend (retval, create_search_entry ());
retval = g_list_prepend (retval, create_level_bar ());
retval = g_list_prepend (retval, create_info_bar ());
return retval;
}
-2
View File
@@ -23,7 +23,6 @@ libgdkinclude_HEADERS = \
gdkbroadway.h
libgdkbroadwayinclude_HEADERS = \
gdkbroadwaydisplaymanager.h \
gdkbroadwaywindow.h \
gdkbroadwaycursor.h \
gdkbroadwayvisual.h
@@ -55,7 +54,6 @@ libgdk_broadway_la_SOURCES = \
gdkdevicemanager-broadway.c \
gdkdisplay-broadway.c \
gdkdisplay-broadway.h \
gdkdisplaymanager-broadway.c \
gdkdnd-broadway.c \
gdkeventsource.c \
gdkeventsource.h \
-1
View File
@@ -32,7 +32,6 @@
#include <gdk/broadway/gdkbroadwaywindow.h>
#include <gdk/broadway/gdkbroadwaycursor.h>
#include <gdk/broadway/gdkbroadwayvisual.h>
#include <gdk/broadway/gdkbroadwaydisplaymanager.h>
#undef __GDKBROADWAY_H_INSIDE__
-45
View File
@@ -1,45 +0,0 @@
/* gdkbroadwaydisplaymanager.h
*
* Copyright (C) 2005-2007 Imendio AB
* Copyright 2010 Red Hat, Inc.
*
* This library 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.
*
* This library 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 this library. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __GDK_BROADWAY_DISPLAY_MANAGER_H__
#define __GDK_BROADWAY_DISPLAY_MANAGER_H__
#if !defined(__GDKBROADWAY_H_INSIDE__) && !defined (GDK_COMPILATION)
#error "Only <gdk/gdkbroadway.h> can be included directly."
#endif
#include <gdk/gdk.h>
G_BEGIN_DECLS
#define GDK_TYPE_BROADWAY_DISPLAY_MANAGER (gdk_broadway_display_manager_get_type ())
#define GDK_BROADWAY_DISPLAY_MANAGER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_BROADWAY_DISPLAY_MANAGER, GdkBroadwayDisplayManager))
#ifdef GDK_COMPILATION
typedef struct _GdkBroadwayDisplayManager GdkBroadwayDisplayManager;
#else
typedef GdkDisplayManager _GdkBroadwayDisplayManager;
#endif
typedef struct _GdkDisplayManagerClass GdkBroadwayDisplayManagerClass;
GType gdk_broadway_display_manager_get_type (void);
G_END_DECLS
#endif /* __GDK_BROADWAY_DISPLAY_MANAGER_H__ */
-103
View File
@@ -1,103 +0,0 @@
/* GDK - The GIMP Drawing Kit
* gdkdisplaymanager-broadway.c
*
* Copyright (C) 2005 Imendio AB
* Copyright 2010 Red Hat, Inc.
*
* Author: Matthias clasen
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
#include "config.h"
#include <stdlib.h>
#include "gdkdisplay-broadway.h"
#include "gdkbroadwaydisplaymanager.h"
#include "gdkprivate-broadway.h"
#include "gdkdisplaymanagerprivate.h"
#include "gdkinternals.h"
struct _GdkBroadwayDisplayManager
{
GdkDisplayManager parent;
gboolean init_failed;
};
static void g_initable_iface_init (GInitableIface *iface);
G_DEFINE_TYPE_WITH_CODE (GdkBroadwayDisplayManager, gdk_broadway_display_manager, GDK_TYPE_DISPLAY_MANAGER,
G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, g_initable_iface_init))
static gboolean
gdk_broadway_display_manager_initable_init (GInitable *initable,
GCancellable *cancellable,
GError **error)
{
const gchar *display_name;
gint port;
GdkBroadwayServer *server;
display_name = g_getenv ("BROADWAY_DISPLAY");
port = 0;
if (display_name != NULL)
{
if (*display_name == ':')
display_name++;
port = strtol(display_name, NULL, 10);
}
if (port == 0)
port = 1;
server = _gdk_broadway_server_new (port, NULL);
if (server == NULL)
{
GDK_BROADWAY_DISPLAY_MANAGER (initable)->init_failed = TRUE;
return FALSE;
}
g_object_unref (server);
return TRUE;
}
void
g_initable_iface_init (GInitableIface *iface)
{
iface->init = gdk_broadway_display_manager_initable_init;
}
static void
gdk_broadway_display_manager_init (GdkBroadwayDisplayManager *manager)
{
}
static void
gdk_broadway_display_manager_finalize (GObject *object)
{
if (!GDK_BROADWAY_DISPLAY_MANAGER (object)->init_failed)
g_error ("A GdkBroadwayDisplayManager object was finalized. This should not happen");
G_OBJECT_CLASS (gdk_broadway_display_manager_parent_class)->finalize (object);
}
static void
gdk_broadway_display_manager_class_init (GdkBroadwayDisplayManagerClass *class)
{
GObjectClass *object_class = G_OBJECT_CLASS (class);
object_class->finalize = gdk_broadway_display_manager_finalize;
}
-3
View File
@@ -382,9 +382,6 @@ gdk_display_open_default_libgtk_only (void)
g_return_val_if_fail (gdk_initialized, NULL);
if (gdk_display_manager_peek () == NULL)
return NULL;
display = gdk_display_get_default ();
if (display)
return display;
+65 -116
View File
@@ -48,7 +48,6 @@
#endif
#ifdef GDK_WINDOWING_BROADWAY
#include "broadway/gdkbroadwaydisplaymanager.h"
#include "broadway/gdkprivate-broadway.h"
#endif
@@ -58,7 +57,6 @@
#endif
#ifdef GDK_WINDOWING_WAYLAND
#include "wayland/gdkwayland.h"
#include "wayland/gdkprivate-wayland.h"
#endif
@@ -132,24 +130,7 @@ static void gdk_display_manager_get_property (GObject *object,
static guint signals[LAST_SIGNAL] = { 0 };
static void g_initable_iface_init (GInitableIface *iface);
G_DEFINE_TYPE_WITH_CODE (GdkDisplayManager, gdk_display_manager, G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, g_initable_iface_init))
static gboolean
gdk_display_manager_initable_init (GInitable *initable,
GCancellable *cancellable,
GError **error)
{
return TRUE;
}
static void
g_initable_iface_init (GInitableIface *iface)
{
iface->init = gdk_display_manager_initable_init;
}
G_DEFINE_TYPE (GdkDisplayManager, gdk_display_manager, G_TYPE_OBJECT)
static void
gdk_display_manager_class_init (GdkDisplayManagerClass *klass)
@@ -272,7 +253,32 @@ gdk_set_allowed_backends (const gchar *backends)
allowed_backends = g_strdup (backends);
}
static GdkDisplayManager *manager = NULL;
typedef struct _GdkBackend GdkBackend;
struct _GdkBackend {
const char *name;
GdkDisplay * (* open_display) (const char *name);
};
static GdkBackend gdk_backends[] = {
#ifdef GDK_WINDOWING_QUARTZ
{ "quartz", _gdk_quartz_display_open },
#endif
#ifdef GDK_WINDOWING_WIN32
{ "win32", _gdk_win32_display_open },
#endif
#ifdef GDK_WINDOWING_X11
{ "x11", _gdk_x11_display_open },
#endif
#ifdef GDK_WINDOWING_WAYLAND
{ "wayland", _gdk_wayland_display_open },
#endif
#ifdef GDK_WINDOWING_BROADWAY
{ "broadway", _gdk_broadway_display_open },
#endif
/* NULL-terminating this array so we can use commas above */
{ NULL, NULL }
};
/**
* gdk_display_manager_get:
@@ -294,97 +300,11 @@ static GdkDisplayManager *manager = NULL;
GdkDisplayManager*
gdk_display_manager_get (void)
{
gdk_display_manager_peek ();
static GdkDisplayManager *manager = NULL;
if (manager == NULL)
g_error ("No GDK backend found (%s)", allowed_backends);
return manager;
}
typedef struct _GdkBackend GdkBackend;
struct _GdkBackend {
const char *name;
GType (* get_backend_type) (void);
GdkDisplay * (* open_display) (const char *name);
};
GdkBackend gdk_backends[] = {
#ifdef GDK_WINDOWING_QUARTZ
{ "quartz", gdk_quartz_display_manager_get_type, _gdk_quartz_display_open },
#endif
#ifdef GDK_WINDOWING_WIN32
{ "win32", gdk_win32_display_manager_get_type, _gdk_win32_display_open },
#endif
#ifdef GDK_WINDOWING_X11
{ "x11", gdk_x11_display_manager_get_type, _gdk_x11_display_open },
#endif
#ifdef GDK_WINDOWING_WAYLAND
{ "wayland", gdk_wayland_display_manager_get_type, _gdk_wayland_display_open },
#endif
#ifdef GDK_WINDOWING_BROADWAY
{ "broadway", gdk_broadway_display_manager_get_type, _gdk_broadway_display_open },
#endif
/* NULL-terminating this array so we can use commas above */
{ NULL, NULL }
};
/**
* gdk_display_manager_peek:
*
* Gets the singleton #GdkDisplayManager object. If GDK could
* not be initialized, %NULL is returned.
*
* Returns: (transfer none): The global #GdkDisplayManager singleton,
* or %NULL if GDK could not be initialized. gdk_parse_args(),
* gdk_init(), or gdk_init_check() must have been called first
*
* Since: 3.10
*/
GdkDisplayManager *
gdk_display_manager_peek (void)
{
if (manager == NULL)
{
const gchar *backend_list;
gchar **backends;
gint i, j;
gboolean allow_any;
if (allowed_backends == NULL)
allowed_backends = "*";
allow_any = strstr (allowed_backends, "*") != NULL;
backend_list = g_getenv ("GDK_BACKEND");
if (backend_list == NULL)
backend_list = allowed_backends;
backends = g_strsplit (backend_list, ",", 0);
for (i = 0; manager == NULL && backends[i] != NULL; i++)
{
const gchar *backend = backends[i];
gboolean any = g_str_equal (backend, "*");
if (!allow_any && !any && !strstr (allowed_backends, backend))
continue;
for (j = 0; gdk_backends[j].name != NULL; j++)
{
if ((any && allow_any) ||
(any && strstr (allowed_backends, gdk_backends[j].name)) ||
g_str_equal (backend, gdk_backends[j].name))
{
GDK_NOTE (MISC, g_message ("Trying %s backend", gdk_backends[j].name));
manager = g_initable_new (gdk_backends[j].get_backend_type (), NULL, NULL, NULL);
if (manager)
break;
}
}
}
g_strfreev (backends);
}
manager = g_object_new (GDK_TYPE_DISPLAY_MANAGER, NULL);
return manager;
}
@@ -501,19 +421,48 @@ GdkDisplay *
gdk_display_manager_open_display (GdkDisplayManager *manager,
const gchar *name)
{
guint i;
const gchar *backend_list;
GdkDisplay *display;
gchar **backends;
gint i, j;
gboolean allow_any;
for (i = 0; gdk_backends[i].name != NULL; i++)
if (allowed_backends == NULL)
allowed_backends = "*";
allow_any = strstr (allowed_backends, "*") != NULL;
backend_list = g_getenv ("GDK_BACKEND");
if (backend_list == NULL)
backend_list = allowed_backends;
backends = g_strsplit (backend_list, ",", 0);
display = NULL;
for (i = 0; display == NULL && backends[i] != NULL; i++)
{
if (G_OBJECT_TYPE (manager) == gdk_backends[i].get_backend_type ())
const gchar *backend = backends[i];
gboolean any = g_str_equal (backend, "*");
if (!allow_any && !any && !strstr (allowed_backends, backend))
continue;
for (j = 0; gdk_backends[j].name != NULL; j++)
{
return gdk_backends[i].open_display (name);
if ((any && allow_any) ||
(any && strstr (allowed_backends, gdk_backends[j].name)) ||
g_str_equal (backend, gdk_backends[j].name))
{
GDK_NOTE (MISC, g_message ("Trying %s backend", gdk_backends[j].name));
display = gdk_backends[j].open_display (name);
if (display)
break;
}
}
}
g_assert_not_reached ();
g_strfreev (backends);
return NULL;
return display;
}
void
-2
View File
@@ -43,8 +43,6 @@ G_BEGIN_DECLS
GType gdk_display_manager_get_type (void) G_GNUC_CONST;
GdkDisplayManager *gdk_display_manager_get (void);
GDK_AVAILABLE_IN_3_10
GdkDisplayManager *gdk_display_manager_peek (void);
GdkDisplay * gdk_display_manager_get_default_display (GdkDisplayManager *manager);
void gdk_display_manager_set_default_display (GdkDisplayManager *manager,
GdkDisplay *display);
+13
View File
@@ -336,4 +336,17 @@ gdk_quartz_display_class_init (GdkQuartzDisplayClass *class)
display_class->convert_selection = _gdk_quartz_display_convert_selection;
display_class->text_property_to_utf8_list = _gdk_quartz_display_text_property_to_utf8_list;
display_class->utf8_to_string_target = _gdk_quartz_display_utf8_to_string_target;
ProcessSerialNumber psn = { 0, kCurrentProcess };
void (*_gtk_quartz_framework_init_ptr) (void);
/* Make the current process a foreground application, i.e. an app
* with a user interface, in case we're not running from a .app bundle
*/
TransformProcessType (&psn, kProcessTransformToForegroundApplication);
/* Initialize GTK+ framework if there is one. */
_gtk_quartz_framework_init_ptr = dlsym (RTLD_DEFAULT, "_gtk_quartz_framework_init");
if (_gtk_quartz_framework_init_ptr)
_gtk_quartz_framework_init_ptr ();
}
-12
View File
@@ -43,18 +43,6 @@ G_DEFINE_TYPE (GdkQuartzDisplayManager, gdk_quartz_display_manager, GDK_TYPE_DIS
static void
gdk_quartz_display_manager_init (GdkQuartzDisplayManager *manager)
{
ProcessSerialNumber psn = { 0, kCurrentProcess };
void (*_gtk_quartz_framework_init_ptr) (void);
/* Make the current process a foreground application, i.e. an app
* with a user interface, in case we're not running from a .app bundle
*/
TransformProcessType (&psn, kProcessTransformToForegroundApplication);
/* Initialize GTK+ framework if there is one. */
_gtk_quartz_framework_init_ptr = dlsym (RTLD_DEFAULT, "_gtk_quartz_framework_init");
if (_gtk_quartz_framework_init_ptr)
_gtk_quartz_framework_init_ptr ();
}
static void
+1 -1
View File
@@ -5,7 +5,7 @@
static void
test_unset_display (void)
{
if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR))
if (g_test_trap_fork (0, 0))//G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR))
{
GdkDisplayManager *manager;
-2
View File
@@ -24,7 +24,6 @@ libgdk_wayland_la_SOURCES = \
gdkdevice-wayland.c \
gdkdisplay-wayland.c \
gdkdisplay-wayland.h \
gdkdisplaymanager-wayland.c \
gdkdnd-wayland.c \
gdkeventsource.c \
gdkkeys-wayland.c \
@@ -40,7 +39,6 @@ libgdkinclude_HEADERS = \
libgdkwaylandinclude_HEADERS = \
gdkwaylanddevice.h \
gdkwaylanddisplay.h \
gdkwaylanddisplaymanager.h \
gdkwaylandselection.h \
gdkwaylandwindow.h
-5
View File
@@ -260,8 +260,6 @@ gdk_wayland_display_dispose (GObject *object)
{
GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (object);
_gdk_wayland_display_manager_remove_display (gdk_display_manager_get (),
GDK_DISPLAY (display_wayland));
g_list_foreach (display_wayland->input_devices,
(GFunc) g_object_run_dispose, NULL);
@@ -613,9 +611,6 @@ gdk_wayland_display_class_init (GdkWaylandDisplayClass * class)
static void
gdk_wayland_display_init (GdkWaylandDisplay *display)
{
_gdk_wayland_display_manager_add_display (gdk_display_manager_get (),
GDK_DISPLAY (display));
display->xkb_context = xkb_context_new (0);
}
-131
View File
@@ -1,131 +0,0 @@
/* GDK - The GIMP Drawing Kit
* gdkdisplaymanager-wayland.c
*
* Copyright 2010 Red Hat, Inc.
*
* Author: Matthias clasen
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
#include "config.h"
#include "gdkdisplaymanagerprivate.h"
#include "gdkdisplay-wayland.h"
#include "gdkprivate-wayland.h"
#include "gdkwayland.h"
#include "gdkinternals.h"
struct _GdkWaylandDisplayManager
{
GdkDisplayManager parent;
GSList *displays;
gboolean init_failed;
};
struct _GdkWaylandDisplayManagerClass
{
GdkDisplayManagerClass parent_class;
};
static void g_initable_iface_init (GInitableIface *iface);
G_DEFINE_TYPE_WITH_CODE (GdkWaylandDisplayManager, gdk_wayland_display_manager, GDK_TYPE_DISPLAY_MANAGER,
G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, g_initable_iface_init))
static gboolean
gdk_wayland_display_manager_initable_init (GInitable *initable,
GCancellable *cancellable,
GError **error)
{
struct wl_display *wl_display;
/* Set by the compositor when launching a special client - and it gets reset
* by wl_display_connect so we must avoid calling it twice
*/
if (g_getenv ("WAYLAND_SOCKET"))
return TRUE;
/* check that a connection to the default display is possible */
wl_display = wl_display_connect (gdk_get_display_arg_name ());
if (!wl_display)
{
GDK_WAYLAND_DISPLAY_MANAGER (initable)->init_failed = TRUE;
return FALSE;
}
wl_display_disconnect (wl_display);
return TRUE;
}
void
g_initable_iface_init (GInitableIface *iface)
{
iface->init = gdk_wayland_display_manager_initable_init;
}
static void
gdk_wayland_display_manager_finalize (GObject *object)
{
if (GDK_WAYLAND_DISPLAY_MANAGER (object)->init_failed == FALSE)
g_error ("A GdkWaylandDisplayManager object was finalized. This should not happen");
G_OBJECT_CLASS (gdk_wayland_display_manager_parent_class)->finalize (object);
}
static void
gdk_wayland_display_manager_class_init (GdkWaylandDisplayManagerClass *class)
{
GObjectClass *object_class = G_OBJECT_CLASS (class);
object_class->finalize = gdk_wayland_display_manager_finalize;
}
static void
gdk_wayland_display_manager_init (GdkWaylandDisplayManager *manager)
{
}
void
_gdk_wayland_display_manager_add_display (GdkDisplayManager *manager,
GdkDisplay *display)
{
GdkWaylandDisplayManager *manager_wayland = GDK_WAYLAND_DISPLAY_MANAGER (manager);
if (manager_wayland->displays == NULL)
gdk_display_manager_set_default_display (manager, display);
manager_wayland->displays = g_slist_prepend (manager_wayland->displays, display);
}
void
_gdk_wayland_display_manager_remove_display (GdkDisplayManager *manager,
GdkDisplay *display)
{
GdkWaylandDisplayManager *manager_wayland = GDK_WAYLAND_DISPLAY_MANAGER (manager);
manager_wayland->displays = g_slist_remove (manager_wayland->displays, display);
if (gdk_display_manager_get_default_display (manager) == display)
{
if (manager_wayland->displays)
gdk_display_manager_set_default_display (manager, manager_wayland->displays->data);
else
gdk_display_manager_set_default_display (manager, NULL);
}
}
+2 -5
View File
@@ -164,11 +164,8 @@ void _gdk_wayland_screen_add_output (GdkScreen *screen,
struct wl_output *output);
void _gdk_wayland_screen_remove_output (GdkScreen *screen,
guint32 id);
void _gdk_wayland_display_manager_add_display (GdkDisplayManager *manager,
GdkDisplay *display);
void _gdk_wayland_display_manager_remove_display (GdkDisplayManager *manager,
GdkDisplay *display);
int _gdk_wayland_screen_get_output_refresh_rate (GdkScreen *screen,
struct wl_output *output);
void _gdk_wayland_window_set_device_grabbed (GdkWindow *window,
GdkDevice *device,
+21 -1
View File
@@ -87,6 +87,7 @@ struct _GdkWaylandMonitor
int height_mm;
char * output_name;
char * manufacturer;
int refresh_rate;
};
G_DEFINE_TYPE (GdkWaylandScreen, _gdk_wayland_screen, GDK_TYPE_SCREEN)
@@ -130,7 +131,7 @@ gdk_wayland_screen_dispose (GObject *object)
GdkWaylandScreen *screen_wayland = GDK_WAYLAND_SCREEN (object);
if (screen_wayland->root_window)
_gdk_window_destroy (screen_wayland->root_window, TRUE);
_gdk_window_destroy (screen_wayland->root_window, FALSE);
G_OBJECT_CLASS (_gdk_wayland_screen_parent_class)->dispose (object);
}
@@ -917,6 +918,7 @@ output_handle_mode(void *data,
monitor->geometry.width = width;
monitor->geometry.height = height;
monitor->refresh_rate = refresh;
g_signal_emit_by_name (monitor->screen, "monitors-changed");
update_screen_size (monitor->screen);
@@ -965,3 +967,21 @@ _gdk_wayland_screen_remove_output (GdkScreen *screen,
}
}
}
int
_gdk_wayland_screen_get_output_refresh_rate (GdkScreen *screen,
struct wl_output *output)
{
GdkWaylandScreen *screen_wayland = GDK_WAYLAND_SCREEN (screen);
int i;
for (i = 0; i < screen_wayland->monitors->len; i++)
{
GdkWaylandMonitor *monitor = screen_wayland->monitors->pdata[i];
if (monitor->output == output)
return monitor->refresh_rate;
}
return 0;
}
-1
View File
@@ -31,7 +31,6 @@
#include <gdk/wayland/gdkwaylanddevice.h>
#include <gdk/wayland/gdkwaylanddisplay.h>
#include <gdk/wayland/gdkwaylanddisplaymanager.h>
#include <gdk/wayland/gdkwaylandselection.h>
#include <gdk/wayland/gdkwaylandwindow.h>
-50
View File
@@ -1,50 +0,0 @@
/* GDK - The GIMP Drawing Kit
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library 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.
*
* This library 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 this library. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GTK+ Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __GDK_WAYLAND_DISPLAY_MANAGER_H__
#define __GDK_WAYLAND_DISPLAY_MANAGER_H__
#if !defined (__GDKWAYLAND_H_INSIDE__) && !defined (GDK_COMPILATION)
#error "Only <gdk/gdkwayland.h> can be included directly."
#endif
#include <gdk/gdk.h>
G_BEGIN_DECLS
typedef struct _GdkWaylandDisplayManager GdkWaylandDisplayManager;
typedef struct _GdkWaylandDisplayManagerClass GdkWaylandDisplayManagerClass;
#define GDK_TYPE_WAYLAND_DISPLAY_MANAGER (gdk_wayland_display_manager_get_type())
#define GDK_WAYLAND_DISPLAY_MANAGER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_WAYLAND_DISPLAY_MANAGER, GdkWaylandDisplayManager))
#define GDK_WAYLAND_DISPLAY_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_WAYLAND_DISPLAY_MANAGER, GdkWaylandDisplayManagerClass))
#define GDK_IS_WAYLAND_DISPLAY_MANAGER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WAYLAND_DISPLAY_MANAGER))
#define GDK_IS_WAYLAND_DISPLAY_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_WAYLAND_DISPLAY_MANAGER))
#define GDK_WAYLAND_DISPLAY_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_WAYLAND_DISPLAY_MANAGER, GdkWaylandDisplayManagerClass))
GType gdk_wayland_display_manager_get_type (void);
G_END_DECLS
#endif /* __GDK_WAYLAND_DISPLAY_MANAGER_H__ */
+241 -64
View File
@@ -26,6 +26,7 @@
#include "gdkwindow.h"
#include "gdkwindowimpl.h"
#include "gdkdisplay-wayland.h"
#include "gdkframeclockprivate.h"
#include "gdkprivate-wayland.h"
#include "gdkinternals.h"
#include "gdkdeviceprivate.h"
@@ -95,6 +96,9 @@ struct _GdkWindowImplWayland
GdkCursor *cursor;
/* The wl_outputs that this window currently touches */
GSList *outputs;
struct wl_surface *surface;
struct wl_shell_surface *shell_surface;
unsigned int mapped : 1;
@@ -140,6 +144,9 @@ struct _GdkWindowImplWayland
} saved_fullscreen, saved_maximized;
gboolean use_custom_surface;
gboolean pending_commit;
gint64 pending_frame_counter;
};
struct _GdkWindowImplWaylandClass
@@ -256,6 +263,145 @@ get_default_title (void)
return title;
}
static void
fill_presentation_time_from_frame_time (GdkFrameTimings *timings,
guint32 frame_time)
{
/* The timestamp in a wayland frame is a msec time value that in some
* way reflects the time at which the server started drawing the frame.
* This is not useful from our perspective.
*
* However, for the DRM backend of Weston, on reasonably recent
* Linux, we know that the time is the
* clock_gettime(CLOCK_MONOTONIC) value at the vblank, and that
* backend starts drawing immediately after receiving the vblank
* notification. If we detect this, and make the assumption that the
* compositor will finish drawing before the next vblank, we can
* then determine the presentation time as the frame time we
* recieved plus one refresh interval.
*
* If a backend is using clock_gettime(CLOCK_MONOTONIC), but not
* picking values right at the vblank, then the presentation times
* we compute won't be accurate, but not really worse than then
* the alternative of not providing presentation times at all.
*
* The complexity here is dealing with the fact that we receive
* only the low 32 bits of the CLOCK_MONOTONIC value in milliseconds.
*/
gint64 now_monotonic = g_get_monotonic_time ();
gint64 now_monotonic_msec = now_monotonic / 1000;
uint32_t now_monotonic_low = (uint32_t)now_monotonic_msec;
if (frame_time - now_monotonic_low < 1000 ||
frame_time - now_monotonic_low > (uint32_t)-1000)
{
/* Timestamp we received is within one second of the current time.
*/
gint64 last_frame_time = now_monotonic + (gint64)1000 * (gint32)(frame_time - now_monotonic_low);
if ((gint32)now_monotonic_low < 0 && (gint32)frame_time > 0)
last_frame_time += (gint64)1000 * G_GINT64_CONSTANT(0x100000000);
else if ((gint32)now_monotonic_low > 0 && (gint32)frame_time < 0)
last_frame_time -= (gint64)1000 * G_GINT64_CONSTANT(0x100000000);
timings->presentation_time = last_frame_time + timings->refresh_interval;
}
}
static void
frame_callback (void *data,
struct wl_callback *callback,
uint32_t time)
{
GdkWindow *window = data;
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
GdkWaylandDisplay *wayland_display = GDK_WAYLAND_DISPLAY (gdk_window_get_display (window));
GdkFrameClock *clock = gdk_window_get_frame_clock (window);
GdkFrameTimings *timings;
wl_callback_destroy (callback);
_gdk_frame_clock_thaw (clock);
timings = gdk_frame_clock_get_timings (clock, impl->pending_frame_counter);
impl->pending_frame_counter = 0;
if (timings == NULL)
return;
timings->refresh_interval = 16667; /* default to 1/60th of a second */
if (impl->outputs)
{
/* We pick a random output out of the outputs that the window touches
* The rate here is in milli-hertz */
int refresh_rate = _gdk_wayland_screen_get_output_refresh_rate (wayland_display->screen,
impl->outputs->data);
if (refresh_rate != 0)
timings->refresh_interval = G_GINT64_CONSTANT(1000000000) / refresh_rate;
}
fill_presentation_time_from_frame_time (timings, time);
timings->complete = TRUE;
#ifdef G_ENABLE_DEBUG
if ((_gdk_debug_flags & GDK_DEBUG_FRAMES) != 0)
_gdk_frame_clock_debug_print_timings (clock, timings);
#endif
}
static const struct wl_callback_listener listener = {
frame_callback
};
static void
on_frame_clock_before_paint (GdkFrameClock *clock,
GdkWindow *window)
{
GdkFrameTimings *timings = gdk_frame_clock_get_current_timings (clock);
gint64 presentation_time;
gint64 refresh_interval;
gdk_frame_clock_get_refresh_info (clock,
timings->frame_time,
&refresh_interval, &presentation_time);
if (presentation_time != 0)
{
/* Assume the algorithm used by the DRM backend of Weston - it
* starts drawing at the next vblank after receiving the commit
* for this frame, and presentation occurs at the vblank
* after that.
*/
timings->predicted_presentation_time = presentation_time + refresh_interval;
}
else
{
/* As above, but we don't actually know the phase of the vblank,
* so just assume that we're half way through a refresh cycle.
*/
timings->predicted_presentation_time = timings->frame_time + refresh_interval / 2 + refresh_interval;
}
}
static void
on_frame_clock_after_paint (GdkFrameClock *clock,
GdkWindow *window)
{
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
struct wl_callback *callback;
if (!impl->pending_commit)
return;
impl->pending_commit = FALSE;
impl->pending_frame_counter = gdk_frame_clock_get_frame_counter (clock);
callback = wl_surface_frame (impl->surface);
wl_callback_add_listener (callback, &listener, window);
_gdk_frame_clock_freeze (clock);
wl_surface_commit (impl->surface);
}
void
_gdk_wayland_display_create_window_impl (GdkDisplay *display,
GdkWindow *window,
@@ -266,6 +412,7 @@ _gdk_wayland_display_create_window_impl (GdkDisplay *display,
gint attributes_mask)
{
GdkWindowImplWayland *impl;
GdkFrameClock *frame_clock;
const char *title;
impl = g_object_new (GDK_TYPE_WINDOW_IMPL_WAYLAND, NULL);
@@ -306,6 +453,13 @@ _gdk_wayland_display_create_window_impl (GdkDisplay *display,
if (attributes_mask & GDK_WA_TYPE_HINT)
gdk_window_set_type_hint (window, attributes->type_hint);
frame_clock = gdk_window_get_frame_clock (window);
g_signal_connect (frame_clock, "before-paint",
G_CALLBACK (on_frame_clock_before_paint), window);
g_signal_connect (frame_clock, "after-paint",
G_CALLBACK (on_frame_clock_after_paint), window);
}
static const cairo_user_data_key_t gdk_wayland_cairo_key;
@@ -368,6 +522,7 @@ gdk_wayland_window_attach_image (GdkWindow *window)
/* Attach this new buffer to the surface */
wl_surface_attach (impl->surface, data->buffer, dx, dy);
impl->pending_commit = TRUE;
}
static void
@@ -478,28 +633,34 @@ gdk_wayland_create_cairo_surface (GdkWaylandDisplay *display,
return surface;
}
/* On this first call this creates a double reference - the first reference
* is held by the GdkWindowImplWayland struct - since unlike other backends
* the Cairo surface is not just a cheap wrapper around some other backing.
* It is the buffer itself.
*/
static cairo_surface_t *
gdk_wayland_window_ref_cairo_surface (GdkWindow *window)
static void
gdk_wayland_window_ensure_cairo_surface (GdkWindow *window)
{
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
GdkWaylandDisplay *display_wayland =
GDK_WAYLAND_DISPLAY (gdk_window_get_display (impl->wrapper));
if (GDK_WINDOW_DESTROYED (impl->wrapper))
return NULL;
if (!impl->cairo_surface)
{
GdkWaylandDisplay *display_wayland =
GDK_WAYLAND_DISPLAY (gdk_window_get_display (impl->wrapper));
impl->cairo_surface =
gdk_wayland_create_cairo_surface (display_wayland,
impl->wrapper->width,
impl->wrapper->height);
}
}
/* Unlike other backends the Cairo surface is not just a cheap wrapper
* around some other backing. It is the buffer itself.
*/
static cairo_surface_t *
gdk_wayland_window_ref_cairo_surface (GdkWindow *window)
{
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
if (GDK_WINDOW_DESTROYED (impl->wrapper))
return NULL;
gdk_wayland_window_ensure_cairo_surface (window);
cairo_surface_reference (impl->cairo_surface);
@@ -518,8 +679,6 @@ gdk_window_impl_wayland_finalize (GObject *object)
if (impl->cursor)
g_object_unref (impl->cursor);
if (impl->server_surface)
cairo_surface_destroy (impl->server_surface);
G_OBJECT_CLASS (_gdk_window_impl_wayland_parent_class)->finalize (object);
}
@@ -638,6 +797,28 @@ gdk_wayland_window_map (GdkWindow *window)
}
}
static void
surface_enter (void *data,
struct wl_surface *wl_surface,
struct wl_output *output)
{
GdkWindow *window = GDK_WINDOW (data);
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
impl->outputs = g_slist_prepend (impl->outputs, output);
}
static void
surface_leave (void *data,
struct wl_surface *wl_surface,
struct wl_output *output)
{
GdkWindow *window = GDK_WINDOW (data);
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
impl->outputs = g_slist_remove (impl->outputs, output);
}
static void
shell_surface_handle_configure(void *data,
struct wl_shell_surface *shell_surface,
@@ -686,12 +867,30 @@ shell_surface_ping (void *data,
wl_shell_surface_pong(shell_surface, serial);
}
static const struct wl_surface_listener surface_listener = {
surface_enter,
surface_leave
};
static const struct wl_shell_surface_listener shell_surface_listener = {
shell_surface_ping,
shell_surface_handle_configure,
shell_surface_popup_done
};
static void
gdk_wayland_window_create_surface (GdkWindow *window)
{
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (gdk_window_get_display (window));
impl->surface = wl_compositor_create_surface (display_wayland->compositor);
wl_surface_set_user_data(impl->surface, window);
wl_surface_add_listener(impl->surface,
&surface_listener, window);
}
static void
gdk_wayland_window_show (GdkWindow *window, gboolean already_mapped)
{
@@ -709,10 +908,7 @@ gdk_wayland_window_show (GdkWindow *window, gboolean already_mapped)
gdk_wayland_window_set_user_time (window, impl->user_time);
if (!impl->surface)
{
impl->surface = wl_compositor_create_surface(display_wayland->compositor);
wl_surface_set_user_data(impl->surface, window);
}
gdk_wayland_window_create_surface (window);
if (!impl->shell_surface &&
!impl->use_custom_surface &&
@@ -738,7 +934,8 @@ gdk_wayland_window_show (GdkWindow *window, gboolean already_mapped)
}
static void
gdk_wayland_window_hide (GdkWindow *window)
gdk_wayland_window_hide_surface (GdkWindow *window,
gboolean is_destroy)
{
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
@@ -746,7 +943,7 @@ gdk_wayland_window_hide (GdkWindow *window)
{
if (impl->shell_surface)
wl_shell_surface_destroy(impl->shell_surface);
if (impl->use_custom_surface)
if (impl->use_custom_surface && !is_destroy)
{
wl_surface_attach (impl->surface, NULL, 0, 0);
wl_surface_commit (impl->surface);
@@ -755,21 +952,27 @@ gdk_wayland_window_hide (GdkWindow *window)
{
wl_surface_destroy(impl->surface);
impl->surface = NULL;
g_slist_free (impl->outputs);
impl->outputs = NULL;
}
impl->shell_surface = NULL;
cairo_surface_destroy(impl->server_surface);
impl->server_surface = NULL;
impl->mapped = FALSE;
}
}
static void
gdk_wayland_window_hide (GdkWindow *window)
{
gdk_wayland_window_hide_surface (window, FALSE);
_gdk_window_clear_update_area (window);
}
static void
gdk_window_wayland_withdraw (GdkWindow *window)
{
GdkWindowImplWayland *impl;
if (!window->destroyed)
{
if (GDK_WINDOW_IS_MAPPED (window))
@@ -777,26 +980,7 @@ gdk_window_wayland_withdraw (GdkWindow *window)
g_assert (!GDK_WINDOW_IS_MAPPED (window));
impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
if (impl->surface)
{
if (impl->shell_surface)
wl_shell_surface_destroy(impl->shell_surface);
if (impl->use_custom_surface)
{
wl_surface_attach (impl->surface, NULL, 0, 0);
wl_surface_commit (impl->surface);
}
else if (impl->surface)
{
wl_surface_destroy(impl->surface);
impl->surface = NULL;
}
impl->shell_surface = NULL;
cairo_surface_destroy(impl->server_surface);
impl->server_surface = NULL;
impl->mapped = FALSE;
}
gdk_wayland_window_hide_surface (window, FALSE);
}
}
@@ -1027,22 +1211,20 @@ gdk_wayland_window_destroy (GdkWindow *window,
g_return_if_fail (GDK_IS_WINDOW (window));
/* We don't have nested windows */
g_return_if_fail (!recursing);
/* Wayland windows can't be externally destroyed; we may possibly
* eventually want to use this path at display close-down */
g_return_if_fail (!foreign_destroy);
gdk_wayland_window_hide_surface (window, TRUE);
if (impl->cairo_surface)
{
cairo_surface_finish (impl->cairo_surface);
cairo_surface_set_user_data (impl->cairo_surface, &gdk_wayland_cairo_key,
NULL, NULL);
}
if (!recursing && !foreign_destroy)
{
if (impl->shell_surface)
wl_shell_surface_destroy(impl->shell_surface);
if (impl->surface)
wl_surface_destroy(impl->surface);
impl->shell_surface = NULL;
impl->surface = NULL;
}
}
static void
@@ -1623,8 +1805,10 @@ gdk_wayland_window_process_updates_recurse (GdkWindow *window,
gdk_wayland_window_map (window);
if (impl->cairo_surface)
gdk_wayland_window_attach_image (window);
gdk_wayland_window_ensure_cairo_surface (window);
gdk_wayland_window_attach_image (window);
_gdk_window_process_updates_recurse (window, region);
n = cairo_region_num_rectangles(region);
for (i = 0; i < n; i++)
@@ -1632,10 +1816,8 @@ gdk_wayland_window_process_updates_recurse (GdkWindow *window,
cairo_region_get_rectangle (region, i, &rect);
wl_surface_damage (impl->surface,
rect.x, rect.y, rect.width, rect.height);
wl_surface_commit(impl->surface);
impl->pending_commit = TRUE;
}
_gdk_window_process_updates_recurse (window, region);
}
static void
@@ -1897,18 +2079,13 @@ void
gdk_wayland_window_set_use_custom_surface (GdkWindow *window)
{
GdkWindowImplWayland *impl;
GdkWaylandDisplay *display;
g_return_if_fail (GDK_IS_WAYLAND_WINDOW (window));
impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
if (!impl->surface)
{
display = GDK_WAYLAND_DISPLAY (gdk_window_get_display (window));
impl->surface = wl_compositor_create_surface (display->compositor);
wl_surface_set_user_data (impl->surface, window);
}
gdk_wayland_window_create_surface (window);
impl->use_custom_surface = TRUE;
}
+2
View File
@@ -688,4 +688,6 @@ gdk_win32_display_class_init (GdkWin32DisplayClass *klass)
display_class->convert_selection = _gdk_win32_display_convert_selection;
display_class->text_property_to_utf8_list = _gdk_win32_display_text_property_to_utf8_list;
display_class->utf8_to_string_target = _gdk_win32_display_utf8_to_string_target;
_gdk_win32_windowing_init ();
}
-8
View File
@@ -41,14 +41,6 @@ G_DEFINE_TYPE (GdkWin32DisplayManager, gdk_win32_display_manager, GDK_TYPE_DISPL
static void
gdk_win32_display_manager_init (GdkWin32DisplayManager *manager)
{
static once = TRUE;
/* relies on displaymanager being a singleton , but our init functions
* call gtk_diplay_maanger_get() again */
if (once)
{
once = FALSE;
_gdk_win32_windowing_init ();
}
}
static void
+2
View File
@@ -2824,4 +2824,6 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class)
display_class->convert_selection = _gdk_x11_display_convert_selection;
display_class->text_property_to_utf8_list = _gdk_x11_display_text_property_to_utf8_list;
display_class->utf8_to_string_target = _gdk_x11_display_utf8_to_string_target;
_gdk_x11_windowing_init ();
}
+2 -36
View File
@@ -31,8 +31,6 @@
struct _GdkX11DisplayManager
{
GdkDisplayManager parent;
gboolean init_failed;
};
struct _GdkX11DisplayManagerClass
@@ -40,49 +38,17 @@ struct _GdkX11DisplayManagerClass
GdkDisplayManagerClass parent_class;
};
static void g_initable_iface_init (GInitableIface *iface);
G_DEFINE_TYPE_WITH_CODE (GdkX11DisplayManager, gdk_x11_display_manager, GDK_TYPE_DISPLAY_MANAGER,
G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, g_initable_iface_init))
static gboolean
gdk_x11_display_manager_initable_init (GInitable *initable,
GCancellable *cancellable,
GError **error)
{
Display *display;
/* check that a connection to the default display is possible */
display = XOpenDisplay (gdk_get_display_arg_name ());
if (!display)
{
GDK_X11_DISPLAY_MANAGER (initable)->init_failed = TRUE;
return FALSE;
}
XCloseDisplay (display);
return TRUE;
}
void
g_initable_iface_init (GInitableIface *iface)
{
iface->init = gdk_x11_display_manager_initable_init;
}
G_DEFINE_TYPE (GdkX11DisplayManager, gdk_x11_display_manager, GDK_TYPE_DISPLAY_MANAGER)
static void
gdk_x11_display_manager_init (GdkX11DisplayManager *manager)
{
_gdk_x11_windowing_init ();
}
static void
gdk_x11_display_manager_finalize (GObject *object)
{
if (GDK_X11_DISPLAY_MANAGER (object)->init_failed == FALSE)
g_error ("A GdkX11DisplayManager object was finalized. This should not happen");
g_error ("A GdkX11DisplayManager object was finalized. This should not happen");
G_OBJECT_CLASS (gdk_x11_display_manager_parent_class)->finalize (object);
}
+5 -5
View File
@@ -295,7 +295,6 @@ gtk_public_h_sources = \
gtkpagesetup.h \
gtkpaned.h \
gtkpapersize.h \
gtkpathbar.h \
gtkplacessidebar.h \
gtkplug.h \
gtkprintcontext.h \
@@ -515,6 +514,7 @@ gtk_private_h_sources = \
gtknumerableiconprivate.h \
gtkorientableprivate.h \
gtkpango.h \
gtkpathbar.h \
gtkpressandholdprivate.h \
gtkprintoperation-private.h \
gtkprintutils.h \
@@ -1356,7 +1356,9 @@ endif
#
# Installed tools
#
bin_PROGRAMS = gtk-query-immodules-3.0
bin_PROGRAMS = \
gtk-query-immodules-3.0 \
gtk-launch
if BUILD_ICON_CACHE
bin_PROGRAMS += gtk-update-icon-cache
@@ -1403,11 +1405,8 @@ gtk_update_icon_cache_LDADD = $(GDK_PIXBUF_LIBS)
gtk_update_icon_cache_SOURCES = updateiconcache.c
endif
if HAVE_GIO_UNIX
bin_PROGRAMS += gtk-launch
gtk_launch_LDADD = $(LDADDS)
gtk_launch_SOURCES = gtk-launch.c
endif
noinst_PROGRAMS = extract-strings
@@ -1737,6 +1736,7 @@ endif
EXTRA_DIST += \
$(STOCK_ICONS) \
$(COMPOSITE_TEMPLATES) \
$(DND_CURSORS) \
$(GENERATED_ICONS) \
gtk.def \
+1 -107
View File
@@ -29,11 +29,9 @@ struct _GtkComboBoxAccessiblePrivate
};
static void atk_action_interface_init (AtkActionIface *iface);
static void atk_selection_interface_init (AtkSelectionIface *iface);
G_DEFINE_TYPE_WITH_CODE (GtkComboBoxAccessible, gtk_combo_box_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE,
G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init)
G_IMPLEMENT_INTERFACE (ATK_TYPE_SELECTION, atk_selection_interface_init))
G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init))
static void
changed_cb (GtkWidget *widget)
@@ -52,7 +50,6 @@ changed_cb (GtkWidget *widget)
{
accessible->priv->old_selection = index;
g_object_notify (G_OBJECT (obj), "accessible-name");
g_signal_emit_by_name (obj, "selection-changed");
}
}
@@ -333,106 +330,3 @@ atk_action_interface_init (AtkActionIface *iface)
iface->get_localized_name = gtk_combo_box_accessible_action_get_localized_name;
iface->get_description = gtk_combo_box_accessible_action_get_description;
}
static gboolean
gtk_combo_box_accessible_add_selection (AtkSelection *selection,
gint i)
{
GtkWidget *widget;
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
if (widget == NULL)
return FALSE;
gtk_combo_box_set_active (GTK_COMBO_BOX (widget), i);
return TRUE;
}
static gboolean
gtk_combo_box_accessible_clear_selection (AtkSelection *selection)
{
GtkWidget *widget;
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
if (widget == NULL)
return FALSE;
gtk_combo_box_set_active (GTK_COMBO_BOX (widget), -1);
return TRUE;
}
static AtkObject *
gtk_combo_box_accessible_ref_selection (AtkSelection *selection,
gint i)
{
GtkComboBox *combo_box;
GtkWidget *widget;
AtkObject *obj;
gint index;
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
if (widget == NULL)
return NULL;
if (i != 0)
return NULL;
combo_box = GTK_COMBO_BOX (widget);
obj = gtk_combo_box_get_popup_accessible (combo_box);
index = gtk_combo_box_get_active (combo_box);
return atk_object_ref_accessible_child (obj, index);
}
static gint
gtk_combo_box_accessible_get_selection_count (AtkSelection *selection)
{
GtkWidget *widget;
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
if (widget == NULL)
return 0;
return (gtk_combo_box_get_active (GTK_COMBO_BOX (widget)) == -1) ? 0 : 1;
}
static gboolean
gtk_combo_box_accessible_is_child_selected (AtkSelection *selection,
gint i)
{
GtkWidget *widget;
gint j;
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
if (widget == NULL)
return FALSE;
j = gtk_combo_box_get_active (GTK_COMBO_BOX (widget));
return (j == i);
}
static gboolean
gtk_combo_box_accessible_remove_selection (AtkSelection *selection,
gint i)
{
if (atk_selection_is_child_selected (selection, i))
atk_selection_clear_selection (selection);
return TRUE;
}
static void
atk_selection_interface_init (AtkSelectionIface *iface)
{
iface->add_selection = gtk_combo_box_accessible_add_selection;
iface->clear_selection = gtk_combo_box_accessible_clear_selection;
iface->ref_selection = gtk_combo_box_accessible_ref_selection;
iface->get_selection_count = gtk_combo_box_accessible_get_selection_count;
iface->is_child_selected = gtk_combo_box_accessible_is_child_selected;
iface->remove_selection = gtk_combo_box_accessible_remove_selection;
}
-1
View File
@@ -145,7 +145,6 @@
#include <gtk/gtkpagesetup.h>
#include <gtk/gtkpapersize.h>
#include <gtk/gtkpaned.h>
#include <gtk/gtkpathbar.h>
#include <gtk/gtkplacessidebar.h>
#include <gtk/gtkprintcontext.h>
#include <gtk/gtkprintoperation.h>
+4
View File
@@ -1907,6 +1907,7 @@ gtk_places_sidebar_add_shortcut
gtk_places_sidebar_get_location
gtk_places_sidebar_get_nth_bookmark
gtk_places_sidebar_get_open_flags
gtk_places_sidebar_get_show_connect_to_server
gtk_places_sidebar_get_show_desktop
gtk_places_sidebar_get_type
gtk_places_sidebar_list_shortcuts
@@ -1914,6 +1915,7 @@ gtk_places_sidebar_new
gtk_places_sidebar_remove_shortcut
gtk_places_sidebar_set_location
gtk_places_sidebar_set_open_flags
gtk_places_sidebar_set_show_connect_to_server
gtk_places_sidebar_set_show_desktop
#ifdef G_OS_UNIX
gtk_plug_construct
@@ -2445,6 +2447,7 @@ gtk_requisition_new
gtk_resize_mode_get_type
gtk_response_type_get_type
gtk_revealer_new
gtk_revealer_get_type
gtk_revealer_get_reveal_child
gtk_revealer_set_reveal_child
gtk_revealer_get_child_revealed
@@ -2452,6 +2455,7 @@ gtk_revealer_get_transition_duration
gtk_revealer_set_transition_duration
gtk_revealer_get_transition_type
gtk_revealer_set_transition_type
gtk_revealer_transition_type_get_type
gtk_rgb_to_hsv
gtk_scale_accessible_get_type
gtk_scale_add_mark
+2
View File
@@ -536,6 +536,8 @@ gtk_app_chooser_dialog_dispose (GObject *object)
cancel_and_clear_cancellable (self);
g_clear_object (&self->priv->online);
self->priv->dismissed = TRUE;
G_OBJECT_CLASS (gtk_app_chooser_dialog_parent_class)->dispose (object);
}
+1 -4
View File
@@ -791,10 +791,7 @@ gtk_box_compute_expand (GtkWidget *widget,
gboolean opposite_expand;
GtkOrientation opposite_orientation;
if (private->orientation == GTK_ORIENTATION_HORIZONTAL)
opposite_orientation = GTK_ORIENTATION_VERTICAL;
else
opposite_orientation = GTK_ORIENTATION_HORIZONTAL;
opposite_orientation = OPPOSITE_ORIENTATION (private->orientation);
our_expand = FALSE;
opposite_expand = FALSE;
+6 -7
View File
@@ -1015,19 +1015,19 @@ start_element (GMarkupParseContext *context,
element_name);
}
gchar *
const gchar *
_gtk_builder_parser_translate (const gchar *domain,
const gchar *context,
const gchar *text)
{
const char *s;
const gchar *s;
if (context)
s = g_dpgettext2 (domain, context, text);
else
s = g_dgettext (domain, text);
return g_strdup (s);
return s;
}
/* Called for close tags </foo> */
@@ -1128,15 +1128,14 @@ end_element (GMarkupParseContext *context,
if (prop_info->translatable && prop_info->text->len)
{
prop_info->data = _gtk_builder_parser_translate (data->domain,
prop_info->context,
prop_info->text->str);
prop_info->data = g_strdup (_gtk_builder_parser_translate (data->domain,
prop_info->context,
prop_info->text->str));
g_string_free (prop_info->text, TRUE);
}
else
{
prop_info->data = g_string_free (prop_info->text, FALSE);
}
object_info->properties =
+3 -3
View File
@@ -148,9 +148,9 @@ gboolean _gtk_builder_flags_from_string (GType type,
const char *string,
guint *value,
GError **error);
gchar * _gtk_builder_parser_translate (const gchar *domain,
const gchar *context,
const gchar *text);
const gchar * _gtk_builder_parser_translate (const gchar *domain,
const gchar *context,
const gchar *text);
gchar * _gtk_builder_get_resource_path (GtkBuilder *builder,
const gchar *string);
gchar * _gtk_builder_get_absolute_filename (GtkBuilder *builder,
+62 -81
View File
@@ -53,6 +53,7 @@
#include "gtkactivatable.h"
#include "gtksizerequest.h"
#include "gtktypebuiltins.h"
#include "gtkwidgetprivate.h"
#include "gtkprivate.h"
#include "gtkintl.h"
#include "a11y/gtkbuttonaccessible.h"
@@ -1596,30 +1597,48 @@ gtk_button_get_props (GtkButton *button,
gtk_style_context_get_border (context, state, border);
}
/* Computes the size of the border around the button's child
* including all CSS and style properties so it can be used
* during size allocation and size request phases. */
static void
gtk_button_size_allocate (GtkWidget *widget,
GtkAllocation *allocation)
gtk_button_get_full_border (GtkButton *button,
GtkBorder *full_border)
{
GtkButton *button = GTK_BUTTON (widget);
GtkButtonPrivate *priv = button->priv;
GtkAllocation child_allocation;
GtkWidget *widget = GTK_WIDGET (button);
GtkStyleContext *context;
GtkWidget *child;
GtkBorder default_border;
GtkBorder padding;
GtkBorder border;
gint focus_width;
gint focus_pad;
gint baseline;
GtkBorder default_border, padding, border;
int focus_width, focus_pad;
context = gtk_widget_get_style_context (widget);
gtk_button_get_props (button, &default_border, NULL,
&padding, &border, NULL);
gtk_style_context_get_style (context,
"focus-line-width", &focus_width,
"focus-padding", &focus_pad,
NULL);
"focus-line-width", &focus_width,
"focus-padding", &focus_pad,
NULL);
full_border->left = padding.left + border.left + focus_width + focus_pad;
full_border->right = padding.right + border.right + focus_width + focus_pad;
full_border->top = padding.top + border.top + focus_width + focus_pad;
full_border->bottom = padding.bottom + border.bottom + focus_width + focus_pad;
if (gtk_widget_get_can_default (GTK_WIDGET (button)))
{
full_border->left += default_border.left;
full_border->right += default_border.right;
full_border->top += default_border.top;
full_border->bottom += default_border.bottom;
}
}
static void
gtk_button_size_allocate (GtkWidget *widget,
GtkAllocation *allocation)
{
GtkButton *button = GTK_BUTTON (widget);
GtkButtonPrivate *priv = button->priv;
GtkWidget *child;
gtk_widget_set_allocation (widget, allocation);
@@ -1633,50 +1652,34 @@ gtk_button_size_allocate (GtkWidget *widget,
child = gtk_bin_get_child (GTK_BIN (button));
if (child && gtk_widget_get_visible (child))
{
child_allocation.x = allocation->x + padding.left + border.left;
child_allocation.y = allocation->y + padding.top + border.top;
GtkAllocation child_allocation;
GtkBorder border;
gint baseline;
child_allocation.width =
allocation->width -
(padding.left + padding.right) -
(border.left + border.right);
gtk_button_get_full_border (button, &border);
child_allocation.height =
allocation->height -
(padding.top + padding.bottom) -
(border.top + border.bottom);
if (gtk_widget_get_can_default (GTK_WIDGET (button)))
{
child_allocation.x += default_border.left;
child_allocation.y += default_border.top;
child_allocation.width = child_allocation.width - default_border.left - default_border.right;
child_allocation.height = child_allocation.height - default_border.top - default_border.bottom;
}
if (gtk_widget_get_can_focus (GTK_WIDGET (button)))
{
child_allocation.x += focus_width + focus_pad;
child_allocation.y += focus_width + focus_pad;
child_allocation.width = child_allocation.width - (focus_width + focus_pad) * 2;
child_allocation.height = child_allocation.height - (focus_width + focus_pad) * 2;
}
child_allocation.x = allocation->x + border.left;
child_allocation.y = allocation->y + border.top;
child_allocation.width = allocation->width - border.left - border.right;
child_allocation.height = allocation->height - border.top - border.bottom;
baseline = gtk_widget_get_allocated_baseline (widget);
if (baseline != -1)
baseline -= child_allocation.y - allocation->y;
baseline -= border.top;
if (priv->depressed)
{
gint child_displacement_x;
gint child_displacement_y;
gtk_style_context_get_style (context,
gtk_style_context_get_style (gtk_widget_get_style_context (GTK_WIDGET (button)),
"child-displacement-x", &child_displacement_x,
"child-displacement-y", &child_displacement_y,
NULL);
child_allocation.x += child_displacement_x;
child_allocation.y += child_displacement_y;
if (baseline != -1)
baseline -= child_displacement_y;
}
child_allocation.width = MAX (1, child_allocation.width);
@@ -2100,67 +2103,45 @@ gtk_button_get_size (GtkWidget *widget,
gint *natural_baseline)
{
GtkButton *button = GTK_BUTTON (widget);
GtkStyleContext *context;
GtkWidget *child;
GtkBorder default_border;
GtkBorder padding;
GtkBorder border;
gint focus_width;
gint focus_pad;
gint minimum, natural;
gint top_offset;
context = gtk_widget_get_style_context (widget);
gtk_button_get_props (button, &default_border, NULL,
&padding, &border, NULL);
gtk_style_context_get_style (context,
"focus-line-width", &focus_width,
"focus-padding", &focus_pad,
NULL);
top_offset = 0;
gtk_button_get_full_border (button, &border);
if (orientation == GTK_ORIENTATION_HORIZONTAL)
{
minimum = padding.left + padding.right +
border.left + border.right;
minimum = border.left + border.right;
natural = minimum;
if (gtk_widget_get_can_default (GTK_WIDGET (widget)))
minimum += default_border.left + default_border.right;
if (for_size >= 0)
for_size -= border.top + border.bottom;
}
else
{
minimum = padding.top + padding.bottom +
border.top + border.bottom;
minimum = border.top + border.bottom;
natural = minimum;
top_offset = padding.top + border.top + focus_width + focus_pad;
if (gtk_widget_get_can_default (GTK_WIDGET (widget)))
{
minimum += default_border.top + default_border.bottom;
top_offset += default_border.top;
}
if (for_size >= 0)
for_size -= border.left + border.right;
}
minimum += 2 * (focus_width + focus_pad);
natural = minimum;
if ((child = gtk_bin_get_child (GTK_BIN (button))) &&
gtk_widget_get_visible (child))
{
gint child_min, child_nat;
gint child_min_baseline = -1, child_nat_baseline = -1;
if (orientation == GTK_ORIENTATION_HORIZONTAL)
gtk_widget_get_preferred_width (child, &child_min, &child_nat);
else
gtk_widget_get_preferred_height_and_baseline_for_width (child, -1, &child_min, &child_nat, &child_min_baseline, &child_nat_baseline);
_gtk_widget_get_preferred_size_for_size (child,
orientation,
for_size,
&child_min, &child_nat,
&child_min_baseline, &child_nat_baseline);
if (minimum_baseline && child_min_baseline >= 0)
*minimum_baseline = child_min_baseline + top_offset;
*minimum_baseline = child_min_baseline + border.top;
if (natural_baseline && child_nat_baseline >= 0)
*natural_baseline = child_nat_baseline + top_offset;
*natural_baseline = child_nat_baseline + border.top;
minimum += child_min;
natural += child_nat;
-4
View File
@@ -239,10 +239,6 @@ G_DEFINE_TYPE_WITH_CODE (GtkCellAreaBox, gtk_cell_area_box, GTK_TYPE_CELL_AREA,
gtk_cell_area_box_cell_layout_init)
G_IMPLEMENT_INTERFACE (GTK_TYPE_ORIENTABLE, NULL));
#define OPPOSITE_ORIENTATION(orientation) \
((orientation) == GTK_ORIENTATION_HORIZONTAL ? \
GTK_ORIENTATION_VERTICAL : GTK_ORIENTATION_HORIZONTAL)
static void
gtk_cell_area_box_init (GtkCellAreaBox *box)
{
+1 -1
View File
@@ -812,7 +812,7 @@ cell_packing_end_element (GMarkupParseContext *context,
/* translate the string */
if (parser_data->string->len && parser_data->translatable)
{
gchar *translated;
const gchar *translated;
const gchar* domain;
domain = gtk_builder_get_translation_domain (parser_data->builder);
+1 -1
View File
@@ -234,7 +234,7 @@ item_end_element (GMarkupParseContext *context,
{
if (data->translatable)
{
gchar *translated;
const gchar *translated;
/* FIXME: This will not use the domain set in the .ui file,
* since the parser is not telling the builder about the domain.
+2 -2
View File
@@ -664,8 +664,8 @@ attributes_end_element (GMarkupParseContext *context,
/* translate the string */
if (parser_data->string->len && parser_data->translatable)
{
gchar *translated;
const gchar* domain;
const gchar *translated;
const gchar *domain;
domain = gtk_builder_get_translation_domain (parser_data->builder);
+217 -19
View File
@@ -29,6 +29,12 @@
#include "gtkthemingengineprivate.h"
#include "gtkpango.h"
#include <math.h>
/* The blur of _gtk_cairo_blur_surface only approximately ends at radius,
so we add an extra pixel to make the clips less dramatic */
#define CLIP_RADIUS_EXTRA 4
struct _GtkCssValue {
GTK_CSS_VALUE_BASE
guint inset :1;
@@ -312,7 +318,7 @@ gtk_css_shadow_value_start_drawing (const GtkCssValue *shadow,
cairo_rectangle_int_t clip_rect;
cairo_surface_t *surface;
cairo_t *blur_cr;
gdouble radius;
gdouble radius, clip_radius;
radius = _gtk_css_number_value_get (shadow->radius, 0);
if (radius == 0.0)
@@ -320,11 +326,13 @@ gtk_css_shadow_value_start_drawing (const GtkCssValue *shadow,
gdk_cairo_get_clip_rectangle (cr, &clip_rect);
clip_radius = radius + CLIP_RADIUS_EXTRA;
/* Create a larger surface to center the blur. */
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
clip_rect.width + 2 * radius,
clip_rect.height + 2 * radius);
cairo_surface_set_device_offset (surface, radius - clip_rect.x, radius - clip_rect.y);
clip_rect.width + 2 * clip_radius,
clip_rect.height + 2 * clip_radius);
cairo_surface_set_device_offset (surface, clip_radius - clip_rect.x, clip_radius - clip_rect.y);
blur_cr = cairo_create (surface);
cairo_set_user_data (blur_cr, &shadow_key, cairo_reference (cr), (cairo_destroy_func_t) cairo_destroy);
@@ -473,49 +481,239 @@ _gtk_css_shadow_value_get_geometry (const GtkCssValue *shadow,
*spread = _gtk_css_number_value_get (shadow->spread, 0);
}
static gboolean
has_empty_clip (cairo_t *cr)
{
double x1, y1, x2, y2;
cairo_clip_extents (cr, &x1, &y1, &x2, &y2);
return x1 == x2 && y1 == y2;
}
static void
draw_shadow (const GtkCssValue *shadow,
cairo_t *cr,
GtkRoundedBox *box,
GtkRoundedBox *clip_box,
gboolean blur)
{
cairo_t *shadow_cr;
if (has_empty_clip (cr))
return;
if (blur)
shadow_cr = gtk_css_shadow_value_start_drawing (shadow, cr);
else
shadow_cr = cr;
cairo_set_fill_rule (shadow_cr, CAIRO_FILL_RULE_EVEN_ODD);
_gtk_rounded_box_path (box, shadow_cr);
if (shadow->inset)
_gtk_rounded_box_clip_path (clip_box, shadow_cr);
gdk_cairo_set_source_rgba (shadow_cr, _gtk_css_rgba_value_get_rgba (shadow->color));
cairo_fill (shadow_cr);
if (blur)
gtk_css_shadow_value_finish_drawing (shadow, shadow_cr);
}
void
_gtk_css_shadow_value_paint_box (const GtkCssValue *shadow,
cairo_t *cr,
const GtkRoundedBox *padding_box)
{
GtkRoundedBox box, clip_box;
double spread, radius;
double spread, radius, clip_radius, x, y, outside;
g_return_if_fail (shadow->class == &GTK_CSS_VALUE_SHADOW);
cairo_save (cr);
spread = _gtk_css_number_value_get (shadow->spread, 0);
radius = _gtk_css_number_value_get (shadow->radius, 0);
clip_radius = radius + CLIP_RADIUS_EXTRA;
x = _gtk_css_number_value_get (shadow->hoffset, 0);
y = _gtk_css_number_value_get (shadow->voffset, 0);
if (shadow->inset)
{
_gtk_rounded_box_path (padding_box, cr);
cairo_clip (cr);
}
else
{
cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD);
_gtk_rounded_box_path (padding_box, cr);
outside = spread + clip_radius + MAX (fabs (x), fabs (y));
clip_box = *padding_box;
_gtk_rounded_box_grow (&clip_box, outside, outside, outside, outside);
_gtk_rounded_box_clip_path (&clip_box, cr);
cairo_clip (cr);
}
if (has_empty_clip (cr))
{
cairo_restore (cr);
return;
}
box = *padding_box;
_gtk_rounded_box_move (&box,
_gtk_css_number_value_get (shadow->hoffset, 0),
_gtk_css_number_value_get (shadow->voffset, 0));
spread = _gtk_css_number_value_get (shadow->spread, 0);
_gtk_rounded_box_move (&box, x, y);
if (shadow->inset)
_gtk_rounded_box_shrink (&box, spread, spread, spread, spread);
else /* Outset */
_gtk_rounded_box_grow (&box, spread, spread, spread, spread);
clip_box = *padding_box;
radius = _gtk_css_number_value_get (shadow->radius, 0);
_gtk_rounded_box_shrink (&clip_box, -radius, -radius, -radius, -radius);
_gtk_rounded_box_shrink (&clip_box, -clip_radius, -clip_radius, -clip_radius, -clip_radius);
cr = gtk_css_shadow_value_start_drawing (shadow, cr);
if (radius == 0)
draw_shadow (shadow, cr, &box, &clip_box, FALSE);
else
{
int i, x1, x2, y1, y2;
cairo_region_t *remaining;
cairo_rectangle_int_t r;
cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD);
_gtk_rounded_box_path (&box, cr);
if (shadow->inset)
_gtk_rounded_box_clip_path (&clip_box, cr);
/* For the blurred case we divide the rendering into 9 parts,
* 4 of the corners, 4 for the horizonat/vertical lines and
* one for the interior. We make the non-interior parts
* large enought to fit the full radius of the blur, so that
* the interior part can be drawn solidly.
*/
gdk_cairo_set_source_rgba (cr, _gtk_css_rgba_value_get_rgba (shadow->color));
cairo_fill (cr);
if (shadow->inset)
{
/* In the inset case we want to paint the whole clip-box.
* We could remove the part of "box" where the blur doesn't
* reach, but computing that is a bit tricky since the
* rounded corners are on the "inside" of it. */
r.x = floor (clip_box.box.x);
r.y = floor (clip_box.box.y);
r.width = ceil (clip_box.box.x + clip_box.box.width) - r.x;
r.height = ceil (clip_box.box.y + clip_box.box.height) - r.y;
remaining = cairo_region_create_rectangle (&r);
}
else
{
/* In the outset case we want to paint the entire box, plus as far
* as the radius reaches from it */
r.x = floor (box.box.x - clip_radius);
r.y = floor (box.box.y - clip_radius);
r.width = ceil (box.box.x + box.box.width + clip_radius) - r.x;
r.height = ceil (box.box.y + box.box.height + clip_radius) - r.y;
cr = gtk_css_shadow_value_finish_drawing (shadow, cr);
remaining = cairo_region_create_rectangle (&r);
}
/* First do the corners of box */
for (i = 0; i < 4; i++)
{
if (i == GTK_CSS_TOP_LEFT || i == GTK_CSS_BOTTOM_LEFT)
{
x1 = floor (box.box.x - clip_radius);
x2 = ceil (box.box.x + box.corner[i].horizontal + clip_radius);
}
else
{
x1 = floor (box.box.x + box.box.width - box.corner[i].horizontal - clip_radius);
x2 = ceil (box.box.x + box.box.width + clip_radius);
}
if (i == GTK_CSS_TOP_LEFT || i == GTK_CSS_TOP_RIGHT)
{
y1 = floor (box.box.y - clip_radius);
y2 = ceil (box.box.y + box.corner[i].vertical + clip_radius);
}
else
{
y1 = floor (box.box.y + box.box.height - box.corner[i].vertical - clip_radius);
y2 = ceil (box.box.y + box.box.height + clip_radius);
}
cairo_save (cr);
cairo_rectangle (cr, x1, y1, x2 - x1, y2 - y1);
cairo_clip (cr);
/* Also clip with remaining to ensure we never draw any area twice */
gdk_cairo_region (cr, remaining);
cairo_clip (cr);
draw_shadow (shadow, cr, &box, &clip_box, TRUE);
cairo_restore (cr);
/* We drew the region, remove it from remaining */
r.x = x1;
r.y = y1;
r.width = x2 - x1;
r.height = y2 - y1;
cairo_region_subtract_rectangle (remaining, &r);
}
/* Then the sides */
for (i = 0; i < 4; i++)
{
if (i == GTK_CSS_TOP || i == GTK_CSS_BOTTOM)
{
x1 = floor (box.box.x - clip_radius);
x2 = ceil (box.box.x + box.box.width + clip_radius);
}
else if (i == GTK_CSS_LEFT)
{
x1 = floor (box.box.x -clip_radius);
x2 = ceil (box.box.x + clip_radius);
}
else
{
x1 = floor (box.box.x + box.box.width -clip_radius);
x2 = ceil (box.box.x + box.box.width + clip_radius);
}
if (i == GTK_CSS_LEFT || i == GTK_CSS_RIGHT)
{
y1 = floor (box.box.y - clip_radius);
y2 = ceil (box.box.y + box.box.height + clip_radius);
}
else if (i == GTK_CSS_TOP)
{
y1 = floor (box.box.y -clip_radius);
y2 = ceil (box.box.y + clip_radius);
}
else
{
y1 = floor (box.box.y + box.box.height -clip_radius);
y2 = ceil (box.box.y + box.box.height + clip_radius);
}
cairo_save (cr);
cairo_rectangle (cr, x1, y1, x2 - x1, y2 - y1);
cairo_clip (cr);
/* Also clip with remaining to ensure we never draw any area twice */
gdk_cairo_region (cr, remaining);
cairo_clip (cr);
draw_shadow (shadow, cr, &box, &clip_box, TRUE);
cairo_restore (cr);
/* We drew the region, remove it from remaining */
r.x = x1;
r.y = y1;
r.width = x2 - x1;
r.height = y2 - y1;
cairo_region_subtract_rectangle (remaining, &r);
}
/* Then the rest, which needs no blurring */
cairo_save (cr);
gdk_cairo_region (cr, remaining);
cairo_clip (cr);
draw_shadow (shadow, cr, &box, &clip_box, FALSE);
cairo_restore (cr);
}
cairo_restore (cr);
}
+13 -13
View File
@@ -504,11 +504,11 @@ static void list_row_activated (GtkTreeView *tree_view,
GtkTreeViewColumn *column,
GtkFileChooserDefault *impl);
static void path_bar_open_location_cb (GtkPathBar *path_bar,
GFile *file,
GFile *child,
gboolean child_is_hidden,
GtkFileChooserDefault *impl);
static void path_bar_clicked (GtkPathBar *path_bar,
GFile *file,
GFile *child,
gboolean child_is_hidden,
GtkFileChooserDefault *impl);
static void update_cell_renderer_attributes (GtkFileChooserDefault *impl);
@@ -2522,7 +2522,7 @@ put_recent_folder_in_pathbar (GtkFileChooserDefault *impl, GtkTreeIter *iter)
gtk_tree_model_get (GTK_TREE_MODEL (priv->recent_model), iter,
MODEL_COL_FILE, &file,
-1);
gtk_path_bar_set_location (GTK_PATH_BAR (priv->browse_path_bar), file, FALSE);
_gtk_path_bar_set_file (GTK_PATH_BAR (priv->browse_path_bar), file, FALSE);
g_object_unref (file);
}
@@ -4615,7 +4615,7 @@ update_current_folder_get_info_cb (GCancellable *cancellable,
if (! _gtk_file_info_consider_as_directory (info))
goto out;
gtk_path_bar_set_location (GTK_PATH_BAR (priv->browse_path_bar), data->file, data->keep_trail);
_gtk_path_bar_set_file (GTK_PATH_BAR (priv->browse_path_bar), data->file, data->keep_trail);
if (priv->current_folder != data->file)
{
@@ -7014,11 +7014,11 @@ list_row_activated (GtkTreeView *tree_view,
}
static void
path_bar_open_location_cb (GtkPathBar *path_bar,
GFile *file,
GFile *child_file,
gboolean child_is_hidden,
GtkFileChooserDefault *impl)
path_bar_clicked (GtkPathBar *path_bar,
GFile *file,
GFile *child_file,
gboolean child_is_hidden,
GtkFileChooserDefault *impl)
{
if (child_file)
pending_select_files_add (impl, child_file);
@@ -7507,7 +7507,7 @@ _gtk_file_chooser_default_class_init (GtkFileChooserDefaultClass *class)
gtk_widget_class_bind_callback (widget_class, filter_combo_changed);
gtk_widget_class_bind_callback (widget_class, location_button_toggled_cb);
gtk_widget_class_bind_callback (widget_class, new_folder_button_clicked);
gtk_widget_class_bind_callback (widget_class, path_bar_open_location_cb);
gtk_widget_class_bind_callback (widget_class, path_bar_clicked);
gtk_widget_class_bind_callback (widget_class, places_sidebar_open_location_cb);
gtk_widget_class_bind_callback (widget_class, places_sidebar_show_error_message_cb);
}
+2 -2
View File
@@ -79,7 +79,7 @@
<object class="GtkPathBar" id="browse_path_bar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<signal name="open-location" handler="path_bar_open_location_cb" after="yes" swapped="no"/>
<signal name="path-clicked" handler="path_bar_clicked" after="yes" swapped="no"/>
</object>
<packing>
<property name="expand">True</property>
@@ -290,7 +290,7 @@
<child>
<object class="GtkTreeViewColumn" id="list_mtime_column">
<property name="resizable">True</property>
<property name="title" translatable="yes">Modifed</property>
<property name="title" translatable="yes">Modified</property>
<child>
<object class="GtkCellRendererText" id="list_mtime_renderer"/>
</child>
+2 -14
View File
@@ -617,18 +617,8 @@ gtk_grid_request_init (GtkGridRequest *request,
child = list->data;
attach = &child->attach[orientation];
if (attach->span != 1)
continue;
if (gtk_widget_compute_expand (child->widget, orientation))
if (attach->span == 1 && gtk_widget_compute_expand (child->widget, orientation))
lines->lines[attach->pos - lines->min].expand = TRUE;
lines->lines[attach->pos - lines->min].empty = FALSE;
}
for (i = 0; i < lines->max - lines->min; i++)
{
if (lines->lines[i].empty)
lines->lines[i].expand = TRUE;
}
}
@@ -1037,8 +1027,6 @@ gtk_grid_request_compute_expand (GtkGridRequest *request,
if (attach->pos + i >= max || attach->pos + 1 < min)
continue;
if (line->empty)
line->expand = TRUE;
line->empty = FALSE;
}
@@ -2552,7 +2540,7 @@ gtk_grid_set_baseline_row (GtkGrid *grid,
}
/**
* gtk_grid_set_baseline_row:
* gtk_grid_get_baseline_row:
* @grid: a #GtkGrid
*
* Returns which row defines the global baseline of @grid.
+2
View File
@@ -1417,6 +1417,8 @@ gtk_image_get_baseline_align (GtkImage *image)
image->priv->baseline_align =
(float)pango_font_metrics_get_ascent (metrics) /
(pango_font_metrics_get_ascent (metrics) + pango_font_metrics_get_descent (metrics));
pango_font_metrics_unref (metrics);
}
return image->priv->baseline_align;
+3 -3
View File
@@ -2555,9 +2555,9 @@ list_store_text (GMarkupParseContext *context,
* since the parser is not telling the builder about the domain.
* However, it will work for gtk_builder_set_translation_domain() calls.
*/
translated = _gtk_builder_parser_translate (data->domain,
info->context,
string);
translated = g_strdup (_gtk_builder_parser_translate (data->domain,
info->context,
string));
g_free (string);
string = translated;
}
+1 -1
View File
@@ -356,7 +356,7 @@ gtk_menu_bar_size_request (GtkWidget *widget,
if (gtk_widget_get_visible (child))
{
_gtk_widget_get_preferred_size_for_size (child, orientation, size, &child_minimum, &child_natural);
_gtk_widget_get_preferred_size_for_size (child, orientation, size, &child_minimum, &child_natural, NULL, NULL);
if (use_toggle_size)
{
+1 -1
View File
@@ -1378,7 +1378,7 @@ gtk_menu_item_activate (GtkMenuItem *menu_item)
/**
* gtk_menu_item_toggle_size_request:
* @menu_item: the menu item
* @requisition: the requisition to use as signal data.
* @requisition: (inout): the requisition to use as signal data.
*
* Emits the #GtkMenuItem::toggle-size-request signal on the given item.
*/
+8 -11
View File
@@ -525,17 +525,14 @@ _gtk_modules_init (gint *argc,
gtk_argv [*argc] = NULL;
}
display_manager = gdk_display_manager_peek ();
if (display_manager != NULL)
{
default_display_opened = gdk_display_get_default () != NULL;
g_signal_connect (display_manager, "notify::default-display",
G_CALLBACK (default_display_notify_cb),
NULL);
g_signal_connect (display_manager, "display-opened",
G_CALLBACK (display_opened_cb),
NULL);
}
display_manager = gdk_display_manager_get ();
default_display_opened = gdk_display_get_default () != NULL;
g_signal_connect (display_manager, "notify::default-display",
G_CALLBACK (default_display_notify_cb),
NULL);
g_signal_connect (display_manager, "display-opened",
G_CALLBACK (display_opened_cb),
NULL);
if (gtk_modules_args)
{
+9 -3
View File
@@ -2267,7 +2267,9 @@ gtk_notebook_size_request (GtkWidget *widget,
orientation,
size,
&child_minimum,
&child_natural);
&child_natural,
NULL,
NULL);
*minimum = MAX (*minimum, child_minimum);
*natural = MAX (*natural, child_natural);
@@ -8176,9 +8178,11 @@ gtk_notebook_set_tab_reorderable (GtkNotebook *notebook,
if (!list)
return;
reorderable = reorderable != FALSE;
if (GTK_NOTEBOOK_PAGE (list)->reorderable != reorderable)
{
GTK_NOTEBOOK_PAGE (list)->reorderable = (reorderable == TRUE);
GTK_NOTEBOOK_PAGE (list)->reorderable = reorderable;
gtk_widget_child_notify (child, "reorderable");
}
}
@@ -8269,9 +8273,11 @@ gtk_notebook_set_tab_detachable (GtkNotebook *notebook,
if (!list)
return;
detachable = detachable != FALSE;
if (GTK_NOTEBOOK_PAGE (list)->detachable != detachable)
{
GTK_NOTEBOOK_PAGE (list)->detachable = (detachable == TRUE);
GTK_NOTEBOOK_PAGE (list)->detachable = detachable;
gtk_widget_child_notify (child, "detachable");
}
}
+8
View File
@@ -399,6 +399,10 @@ gtk_overlay_get_child_position (GtkOverlay *overlay,
case GTK_ALIGN_END:
alloc->x += main_alloc.width - req.width;
break;
case GTK_ALIGN_BASELINE:
default:
g_assert_not_reached ();
break;
}
alloc->y = main_alloc.y;
@@ -418,6 +422,10 @@ gtk_overlay_get_child_position (GtkOverlay *overlay,
case GTK_ALIGN_END:
alloc->y += main_alloc.height - req.height;
break;
case GTK_ALIGN_BASELINE:
default:
g_assert_not_reached ();
break;
}
return TRUE;
+152 -59
View File
@@ -871,11 +871,68 @@ gtk_paned_finalize (GObject *object)
}
static void
gtk_paned_get_preferred_size (GtkWidget *widget,
GtkOrientation orientation,
gint size,
gint *minimum,
gint *natural)
gtk_paned_compute_position (GtkPaned *paned,
gint allocation,
gint child1_req,
gint child2_req,
gint *min_pos,
gint *max_pos,
gint *out_pos)
{
GtkPanedPrivate *priv = paned->priv;
gint min, max, pos;
min = priv->child1_shrink ? 0 : child1_req;
max = allocation;
if (!priv->child2_shrink)
max = MAX (1, max - child2_req);
max = MAX (min, max);
if (!priv->position_set)
{
if (priv->child1_resize && !priv->child2_resize)
pos = MAX (0, allocation - child2_req);
else if (!priv->child1_resize && priv->child2_resize)
pos = child1_req;
else if (child1_req + child2_req != 0)
pos = allocation * ((gdouble)child1_req / (child1_req + child2_req)) + 0.5;
else
pos = allocation * 0.5 + 0.5;
}
else
{
/* If the position was set before the initial allocation.
* (priv->last_allocation <= 0) just clamp it and leave it.
*/
if (priv->last_allocation > 0)
{
if (priv->child1_resize && !priv->child2_resize)
pos = priv->child1_size + allocation - priv->last_allocation;
else if (!(!priv->child1_resize && priv->child2_resize))
pos = allocation * ((gdouble) priv->child1_size / (priv->last_allocation)) + 0.5;
else
pos = priv->child1_size;
}
else
pos = priv->child1_size;
}
pos = CLAMP (pos, min, max);
if (min_pos)
*min_pos = min;
if (max_pos)
*max_pos = max;
if (out_pos)
*out_pos = pos;
}
static void
gtk_paned_get_preferred_size_for_orientation (GtkWidget *widget,
gint size,
gint *minimum,
gint *natural)
{
GtkPaned *paned = GTK_PANED (widget);
GtkPanedPrivate *priv = paned->priv;
@@ -885,8 +942,8 @@ gtk_paned_get_preferred_size (GtkWidget *widget,
if (priv->child1 && gtk_widget_get_visible (priv->child1))
{
_gtk_widget_get_preferred_size_for_size (priv->child1, orientation, size, &child_min, &child_nat);
if (priv->child1_shrink && priv->orientation == orientation)
_gtk_widget_get_preferred_size_for_size (priv->child1, priv->orientation, size, &child_min, &child_nat, NULL, NULL);
if (priv->child1_shrink)
*minimum = 0;
else
*minimum = child_min;
@@ -895,19 +952,11 @@ gtk_paned_get_preferred_size (GtkWidget *widget,
if (priv->child2 && gtk_widget_get_visible (priv->child2))
{
_gtk_widget_get_preferred_size_for_size (priv->child2, orientation, size, &child_min, &child_nat);
_gtk_widget_get_preferred_size_for_size (priv->child2, priv->orientation, size, &child_min, &child_nat, NULL, NULL);
if (priv->orientation == orientation)
{
if (!priv->child2_shrink)
*minimum += child_min;
*natural += child_nat;
}
else
{
*minimum = MAX (*minimum, child_min);
*natural = MAX (*natural, child_nat);
}
if (!priv->child2_shrink)
*minimum += child_min;
*natural += child_nat;
}
if (priv->child1 && gtk_widget_get_visible (priv->child1) &&
@@ -917,14 +966,89 @@ gtk_paned_get_preferred_size (GtkWidget *widget,
gtk_widget_style_get (widget, "handle-size", &handle_size, NULL);
if (priv->orientation == orientation)
{
*minimum += handle_size;
*natural += handle_size;
}
*minimum += handle_size;
*natural += handle_size;
}
}
static void
gtk_paned_get_preferred_size_for_opposite_orientation (GtkWidget *widget,
gint size,
gint *minimum,
gint *natural)
{
GtkPaned *paned = GTK_PANED (widget);
GtkPanedPrivate *priv = paned->priv;
gint for_child1, for_child2;
gint child_min, child_nat;
if (size > -1 &&
priv->child1 && gtk_widget_get_visible (priv->child1) &&
priv->child2 && gtk_widget_get_visible (priv->child2))
{
gint child1_req, child2_req;
gint handle_size;
gtk_widget_style_get (widget, "handle-size", &handle_size, NULL);
_gtk_widget_get_preferred_size_for_size (priv->child1, priv->orientation, -1, &child1_req, NULL, NULL, NULL);
_gtk_widget_get_preferred_size_for_size (priv->child2, priv->orientation, -1, &child2_req, NULL, NULL, NULL);
gtk_paned_compute_position (paned,
size, child1_req, child2_req,
NULL, NULL, &for_child1);
for_child2 = size - for_child1 - handle_size;
}
else
{
for_child1 = size;
for_child2 = size;
}
*minimum = *natural = 0;
if (priv->child1 && gtk_widget_get_visible (priv->child1))
{
_gtk_widget_get_preferred_size_for_size (priv->child1,
OPPOSITE_ORIENTATION (priv->orientation),
for_child1,
&child_min, &child_nat,
NULL, NULL);
*minimum = child_min;
*natural = child_nat;
}
if (priv->child2 && gtk_widget_get_visible (priv->child2))
{
_gtk_widget_get_preferred_size_for_size (priv->child2,
OPPOSITE_ORIENTATION (priv->orientation),
for_child2,
&child_min, &child_nat,
NULL, NULL);
*minimum = MAX (*minimum, child_min);
*natural = MAX (*natural, child_nat);
}
}
static void
gtk_paned_get_preferred_size (GtkWidget *widget,
GtkOrientation orientation,
gint size,
gint *minimum,
gint *natural)
{
GtkPaned *paned = GTK_PANED (widget);
GtkPanedPrivate *priv = paned->priv;
if (orientation == priv->orientation)
return gtk_paned_get_preferred_size_for_orientation (widget, size, minimum, natural);
else
return gtk_paned_get_preferred_size_for_opposite_orientation (widget, size, minimum, natural);
}
static void
gtk_paned_get_preferred_width (GtkWidget *widget,
gint *minimum,
@@ -2064,41 +2188,10 @@ gtk_paned_calc_position (GtkPaned *paned,
old_min_position = priv->min_position;
old_max_position = priv->max_position;
priv->min_position = priv->child1_shrink ? 0 : child1_req;
priv->max_position = allocation;
if (!priv->child2_shrink)
priv->max_position = MAX (1, priv->max_position - child2_req);
priv->max_position = MAX (priv->min_position, priv->max_position);
if (!priv->position_set)
{
if (priv->child1_resize && !priv->child2_resize)
priv->child1_size = MAX (0, allocation - child2_req);
else if (!priv->child1_resize && priv->child2_resize)
priv->child1_size = child1_req;
else if (child1_req + child2_req != 0)
priv->child1_size = allocation * ((gdouble)child1_req / (child1_req + child2_req)) + 0.5;
else
priv->child1_size = allocation * 0.5 + 0.5;
}
else
{
/* If the position was set before the initial allocation.
* (priv->last_allocation <= 0) just clamp it and leave it.
*/
if (priv->last_allocation > 0)
{
if (priv->child1_resize && !priv->child2_resize)
priv->child1_size += allocation - priv->last_allocation;
else if (!(!priv->child1_resize && priv->child2_resize))
priv->child1_size = allocation * ((gdouble) priv->child1_size / (priv->last_allocation)) + 0.5;
}
}
priv->child1_size = CLAMP (priv->child1_size,
priv->min_position,
priv->max_position);
gtk_paned_compute_position (paned,
allocation, child1_req, child2_req,
&priv->min_position, &priv->max_position,
&priv->child1_size);
if (priv->child1)
gtk_paned_set_child_visible (paned, 0, priv->child1_size != 0);
+344 -721
View File
File diff suppressed because it is too large Load Diff
+9 -22
View File
@@ -18,13 +18,8 @@
#ifndef __GTK_PATH_BAR_H__
#define __GTK_PATH_BAR_H__
#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
#error "Only <gtk/gtk.h> can be included directly."
#endif
#include <gtk/gtkcontainer.h>
#include <gtk/gtkfilesystem.h>
#include <gtk/gtkplacessidebar.h>
#include "gtkcontainer.h"
#include "gtkfilesystem.h"
G_BEGIN_DECLS
@@ -51,26 +46,18 @@ struct _GtkPathBarClass
{
GtkContainerClass parent_class;
void (* open_location) (GtkPathBar *path_bar,
GFile *file,
GFile *child_file,
gboolean child_is_hidden);
void (* path_clicked) (GtkPathBar *path_bar,
GFile *file,
GFile *child_file,
gboolean child_is_hidden);
};
GType gtk_path_bar_get_type (void) G_GNUC_CONST;
GtkWidget *gtk_path_bar_new (void);
GtkPlacesOpenFlags gtk_path_bar_get_open_flags (GtkPathBar *path_bar);
void gtk_path_bar_set_open_flags (GtkPathBar *path_bar, GtkPlacesOpenFlags flags);
void gtk_path_bar_set_location (GtkPathBar *path_bar,
GFile *location,
gboolean keep_trail);
GFile *gtk_path_bar_get_location (GtkPathBar *path_bar);
void _gtk_path_bar_set_file_system (GtkPathBar *path_bar,
GtkFileSystem *file_system);
void _gtk_path_bar_set_file (GtkPathBar *path_bar,
GFile *file,
gboolean keep_trail);
void _gtk_path_bar_up (GtkPathBar *path_bar);
void _gtk_path_bar_down (GtkPathBar *path_bar);
+25 -22
View File
@@ -3568,12 +3568,15 @@ hostname_proxy_new_cb (GObject *source_object,
{
GtkPlacesSidebar *sidebar = user_data;
GError *error = NULL;
GDBusProxy *proxy;
sidebar->hostnamed_proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
return;
sidebar->hostnamed_proxy = proxy;
g_clear_object (&sidebar->hostnamed_cancellable);
g_object_unref (sidebar);
if (error != NULL) {
g_debug ("Failed to create D-Bus proxy: %s", error->message);
g_error_free (error);
@@ -3833,7 +3836,7 @@ gtk_places_sidebar_init (GtkPlacesSidebar *sidebar)
"org.freedesktop.hostname1",
sidebar->hostnamed_cancellable,
hostname_proxy_new_cb,
g_object_ref (sidebar));
sidebar);
sidebar->drop_state = DROP_STATE_NORMAL;
sidebar->new_bookmark_index = -1;
@@ -3989,7 +3992,7 @@ gtk_places_sidebar_class_init (GtkPlacesSidebarClass *class)
* location; for example, a file manager should show a list of files in
* the specified location.
*
* Since: 3.8
* Since: 3.10
*/
places_sidebar_signals [OPEN_LOCATION] =
g_signal_new (I_("open-location"),
@@ -4028,7 +4031,7 @@ gtk_places_sidebar_class_init (GtkPlacesSidebarClass *class)
* dismisses the menu. The menu is re-created (and thus, this signal is
* emitted) every time the user activates the contextual menu.
*
* Since: 3.8
* Since: 3.10
*/
places_sidebar_signals [POPULATE_POPUP] =
g_signal_new (I_("populate-popup"),
@@ -4053,7 +4056,7 @@ gtk_places_sidebar_class_init (GtkPlacesSidebarClass *class)
* refer to mounting or unmounting media, for example, when a drive
* cannot be started for some reason.
*
* Since: 3.8
* Since: 3.10
*/
places_sidebar_signals [SHOW_ERROR_MESSAGE] =
g_signal_new (I_("show-error-message"),
@@ -4076,7 +4079,7 @@ gtk_places_sidebar_class_init (GtkPlacesSidebarClass *class)
* a URL like "sftp://ftp.example.com". It is up to the application to create
* the corresponding mount by using, for example, g_file_mount_enclosing_volume().
*
* Since: 3.8
* Since: 3.10
*/
places_sidebar_signals [SHOW_CONNECT_TO_SERVER] =
g_signal_new (I_("show-connect-to-server"),
@@ -4108,7 +4111,7 @@ gtk_places_sidebar_class_init (GtkPlacesSidebarClass *class)
* or #GDK_ACTION_MOVE, or 0 if no action is allowed here (i.e. drops
* are not allowed in the specified @dest_file).
*
* Since: 3.8
* Since: 3.10
*/
places_sidebar_signals [DRAG_ACTION_REQUESTED] =
g_signal_new (I_("drag-action-requested"),
@@ -4133,7 +4136,7 @@ gtk_places_sidebar_class_init (GtkPlacesSidebarClass *class)
* Return value: the final drag action that the sidebar should pass to the drag side
* of the drag-and-drop operation.
*
* Since: 3.8
* Since: 3.10
*/
places_sidebar_signals [DRAG_ACTION_ASK] =
g_signal_new (I_("drag-action-ask"),
@@ -4158,7 +4161,7 @@ gtk_places_sidebar_class_init (GtkPlacesSidebarClass *class)
* @source_file_list has the list of files that are dropped into it and
* which should be copied/moved/etc. based on the specified @action.
*
* Since: 3.8
* Since: 3.10
*/
places_sidebar_signals [DRAG_PERFORM_DROP] =
g_signal_new (I_("drag-perform-drop"),
@@ -4316,7 +4319,7 @@ shortcuts_model_new (GtkPlacesSidebar *sidebar)
* Passing 0 for @flags will cause #GTK_PLACES_OPEN_NORMAL to always be sent
* to callbacks for the "open-location" signal.
*
* Since: 3.8
* Since: 3.10
*/
void
gtk_places_sidebar_set_open_flags (GtkPlacesSidebar *sidebar, GtkPlacesOpenFlags flags)
@@ -4348,7 +4351,7 @@ gtk_places_sidebar_get_open_flags (GtkPlacesSidebar *sidebar)
* places, or it will unhighlight everything if the @location is not among the
* places in the list.
*
* Since: 3.8
* Since: 3.10
*/
void
gtk_places_sidebar_set_location (GtkPlacesSidebar *sidebar, GFile *location)
@@ -4408,7 +4411,7 @@ gtk_places_sidebar_set_location (GtkPlacesSidebar *sidebar, GFile *location)
* Returns: (transfer full): a GFile with the selected location, or #NULL if nothing is visually
* selected.
*
* Since: 3.8
* Since: 3.10
*/
GFile *
gtk_places_sidebar_get_location (GtkPlacesSidebar *sidebar)
@@ -4443,7 +4446,7 @@ gtk_places_sidebar_get_location (GtkPlacesSidebar *sidebar)
* An application may want to turn this on if the desktop environment actually supports the
* notion of a desktop.
*
* Since: 3.8
* Since: 3.10
*/
void
gtk_places_sidebar_set_show_desktop (GtkPlacesSidebar *sidebar, gboolean show_desktop)
@@ -4466,7 +4469,7 @@ gtk_places_sidebar_set_show_desktop (GtkPlacesSidebar *sidebar, gboolean show_de
*
* Return value: %TRUE if the sidebar will display a builtin shortcut to the desktop folder.
*
* Since: 3.8
* Since: 3.10
*/
gboolean
gtk_places_sidebar_get_show_desktop (GtkPlacesSidebar *sidebar)
@@ -4485,7 +4488,7 @@ gtk_places_sidebar_get_show_desktop (GtkPlacesSidebar *sidebar)
* An application may want to turn this on if it implements a way for the user to connect
* to network servers directly.
*
* Since: 3.8
* Since: 3.10
*/
void
gtk_places_sidebar_set_show_connect_to_server (GtkPlacesSidebar *sidebar, gboolean show_connect_to_server)
@@ -4508,7 +4511,7 @@ gtk_places_sidebar_set_show_connect_to_server (GtkPlacesSidebar *sidebar, gboole
*
* Return value: %TRUE if the sidebar will display a "Connect to Server" item.
*
* Since: 3.8
* Since: 3.10
*/
gboolean
gtk_places_sidebar_get_show_connect_to_server (GtkPlacesSidebar *sidebar)
@@ -4550,7 +4553,7 @@ find_shortcut_link (GtkPlacesSidebar *sidebar, GFile *location)
* is called multiple times with different locations, then they are added
* to the sidebar's list in the same order as the function is called.
*
* Since: 3.8
* Since: 3.10
*/
void
gtk_places_sidebar_add_shortcut (GtkPlacesSidebar *sidebar, GFile *location)
@@ -4573,7 +4576,7 @@ gtk_places_sidebar_add_shortcut (GtkPlacesSidebar *sidebar, GFile *location)
* inserted with gtk_places_sidebar_add_shortcut(). If the @location is not a
* shortcut in the sidebar, then nothing is done.
*
* Since: 3.8
* Since: 3.10
*/
void
gtk_places_sidebar_remove_shortcut (GtkPlacesSidebar *sidebar, GFile *location)
@@ -4606,7 +4609,7 @@ gtk_places_sidebar_remove_shortcut (GtkPlacesSidebar *sidebar, GFile *location)
* g_slist_free_full (list, (GDestroyNotify) g_object_unref);
* ]|
*
* Since: 3.8
* Since: 3.10
*/
GSList *
gtk_places_sidebar_list_shortcuts (GtkPlacesSidebar *sidebar)
@@ -4629,7 +4632,7 @@ gtk_places_sidebar_list_shortcuts (GtkPlacesSidebar *sidebar)
* #NULL if no such index exist. Note that the indices start at 0, even though
* the file chooser starts them with the keyboard shortcut "Alt-1".
*
* Since: 3.8
* Since: 3.10
*/
GFile *
gtk_places_sidebar_get_nth_bookmark (GtkPlacesSidebar *sidebar, int n)
+21 -14
View File
@@ -77,26 +77,33 @@ typedef enum {
GTK_PLACES_OPEN_NEW_WINDOW = 1 << 2
} GtkPlacesOpenFlags;
GType gtk_places_sidebar_get_type (void);
GtkWidget *gtk_places_sidebar_new (void);
GType gtk_places_sidebar_get_type (void) G_GNUC_CONST;
GtkWidget * gtk_places_sidebar_new (void);
GtkPlacesOpenFlags gtk_places_sidebar_get_open_flags (GtkPlacesSidebar *sidebar);
void gtk_places_sidebar_set_open_flags (GtkPlacesSidebar *sidebar, GtkPlacesOpenFlags flags);
GtkPlacesOpenFlags gtk_places_sidebar_get_open_flags (GtkPlacesSidebar *sidebar);
void gtk_places_sidebar_set_open_flags (GtkPlacesSidebar *sidebar,
GtkPlacesOpenFlags flags);
GFile *gtk_places_sidebar_get_location (GtkPlacesSidebar *sidebar);
void gtk_places_sidebar_set_location (GtkPlacesSidebar *sidebar, GFile *location);
GFile * gtk_places_sidebar_get_location (GtkPlacesSidebar *sidebar);
void gtk_places_sidebar_set_location (GtkPlacesSidebar *sidebar,
GFile *location);
gboolean gtk_places_sidebar_get_show_desktop (GtkPlacesSidebar *sidebar);
void gtk_places_sidebar_set_show_desktop (GtkPlacesSidebar *sidebar, gboolean show_desktop);
gboolean gtk_places_sidebar_get_show_desktop (GtkPlacesSidebar *sidebar);
void gtk_places_sidebar_set_show_desktop (GtkPlacesSidebar *sidebar,
gboolean show_desktop);
gboolean gtk_places_sidebar_get_show_connect_to_server (GtkPlacesSidebar *sidebar);
void gtk_places_sidebar_set_show_connect_to_server (GtkPlacesSidebar *sidebar, gboolean show_connect_to_server);
gboolean gtk_places_sidebar_get_show_connect_to_server (GtkPlacesSidebar *sidebar);
void gtk_places_sidebar_set_show_connect_to_server (GtkPlacesSidebar *sidebar,
gboolean show_connect_to_server);
void gtk_places_sidebar_add_shortcut (GtkPlacesSidebar *sidebar, GFile *location);
void gtk_places_sidebar_remove_shortcut (GtkPlacesSidebar *sidebar, GFile *location);
GSList *gtk_places_sidebar_list_shortcuts (GtkPlacesSidebar *sidebar);
void gtk_places_sidebar_add_shortcut (GtkPlacesSidebar *sidebar,
GFile *location);
void gtk_places_sidebar_remove_shortcut (GtkPlacesSidebar *sidebar,
GFile *location);
GSList * gtk_places_sidebar_list_shortcuts (GtkPlacesSidebar *sidebar);
GFile *gtk_places_sidebar_get_nth_bookmark (GtkPlacesSidebar *sidebar, int n);
GFile * gtk_places_sidebar_get_nth_bookmark (GtkPlacesSidebar *sidebar,
gint n);
G_END_DECLS
+2
View File
@@ -37,6 +37,8 @@ G_BEGIN_DECLS
#define GTK_PARAM_WRITABLE G_PARAM_WRITABLE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB
#define GTK_PARAM_READWRITE G_PARAM_READWRITE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB
#define OPPOSITE_ORIENTATION(_orientation) (1 - (_orientation))
#ifdef G_DISABLE_CAST_CHECKS
/* This is true for debug no and minimum */
#define gtk_internal_return_if_fail(__expr) G_STMT_START{ (void)0; }G_STMT_END
+3 -3
View File
@@ -659,7 +659,7 @@ gtk_revealer_set_reveal_child (GtkRevealer *revealer,
/**
* gtk_revealer_get_reveal_child:
* @revealer:
* @revealer: a #GtkRevealer
*
* Returns whether the child is currently
* revealed. See gtk_revealer_set_reveal_child().
@@ -874,8 +874,8 @@ gtk_revealer_get_transition_type (GtkRevealer *revealer)
}
/**
* gtk_stack_set_transition_type:
* @stack: a #GtkStack
* gtk_revealer_set_transition_type:
* @revealer: a #GtkRevealer
* @transition: the new transition type
*
* Sets the type of animation that will be used for
+1 -1
View File
@@ -1880,7 +1880,7 @@ gtk_scale_buildable_custom_finished (GtkBuildable *buildable,
if (strcmp (tagname, "marks") == 0)
{
GSList *m;
gchar *markup;
const gchar *markup;
marks_data = (MarksSubparserData *)user_data;
+22 -9
View File
@@ -858,20 +858,33 @@ _gtk_widget_get_preferred_size_for_size (GtkWidget *widget,
GtkOrientation orientation,
gint size,
gint *minimum,
gint *natural)
gint *natural,
gint *minimum_baseline,
gint *natural_baseline)
{
g_return_if_fail (GTK_IS_WIDGET (widget));
g_return_if_fail (size >= -1);
if (orientation == GTK_ORIENTATION_HORIZONTAL)
if (size < 0)
gtk_widget_get_preferred_width (widget, minimum, natural);
else
gtk_widget_get_preferred_width_for_height (widget, size, minimum, natural);
{
if (size < 0)
gtk_widget_get_preferred_width (widget, minimum, natural);
else
gtk_widget_get_preferred_width_for_height (widget, size, minimum, natural);
if (minimum_baseline)
*minimum_baseline = -1;
if (natural_baseline)
*natural_baseline = -1;
}
else
if (size < 0)
gtk_widget_get_preferred_height (widget, minimum, natural);
else
gtk_widget_get_preferred_height_for_width (widget, size, minimum, natural);
{
gtk_widget_get_preferred_height_and_baseline_for_width (widget,
size,
minimum,
natural,
minimum_baseline,
natural_baseline);
}
}
+1 -1
View File
@@ -58,7 +58,7 @@ _gtk_size_request_cache_free (SizeRequestCache *cache)
{
if (cache->requests_x)
free_sizes_x (cache->requests_x);
if (cache->requests_x)
if (cache->requests_y)
free_sizes_y (cache->requests_y);
}
+48 -10
View File
@@ -156,6 +156,9 @@ struct _GtkSpinButtonPrivate
GdkWindow *down_panel;
GdkWindow *up_panel;
GtkStyleContext *down_panel_context;
GtkStyleContext *up_panel_context;
GdkWindow *click_child;
GdkWindow *in_child;
@@ -248,6 +251,7 @@ static void gtk_spin_button_grab_notify (GtkWidget *widget,
gboolean was_grabbed);
static void gtk_spin_button_state_flags_changed (GtkWidget *widget,
GtkStateFlags previous_state);
static void gtk_spin_button_style_updated (GtkWidget *widget);
static gboolean gtk_spin_button_timer (GtkSpinButton *spin_button);
static gboolean gtk_spin_button_stop_spinning (GtkSpinButton *spin);
static void gtk_spin_button_value_changed (GtkAdjustment *adjustment,
@@ -328,6 +332,7 @@ gtk_spin_button_class_init (GtkSpinButtonClass *class)
widget_class->focus_out_event = gtk_spin_button_focus_out;
widget_class->grab_notify = gtk_spin_button_grab_notify;
widget_class->state_flags_changed = gtk_spin_button_state_flags_changed;
widget_class->style_updated = gtk_spin_button_style_updated;
entry_class->activate = gtk_spin_button_activate;
entry_class->get_text_area_size = gtk_spin_button_get_text_area_size;
@@ -684,7 +689,16 @@ gtk_spin_button_init (GtkSpinButton *spin_button)
static void
gtk_spin_button_finalize (GObject *object)
{
gtk_spin_button_set_adjustment (GTK_SPIN_BUTTON (object), NULL);
GtkSpinButton *spin_button = GTK_SPIN_BUTTON (object);
GtkSpinButtonPrivate *priv = spin_button->priv;
gtk_spin_button_set_adjustment (spin_button, NULL);
if (priv->down_panel_context)
g_object_unref (priv->down_panel_context);
if (priv->up_panel_context)
g_object_unref (priv->up_panel_context);
G_OBJECT_CLASS (gtk_spin_button_parent_class)->finalize (object);
}
@@ -730,7 +744,7 @@ gtk_spin_button_unmap (GtkWidget *widget)
static void
gtk_spin_button_panel_nthchildize_context (GtkSpinButton *spin_button,
GtkStyleContext *context,
GdkWindow *panel)
gboolean is_down_panel)
{
GtkSpinButtonPrivate *priv = spin_button->priv;
GtkWidget *widget = GTK_WIDGET (spin_button);
@@ -777,7 +791,7 @@ gtk_spin_button_panel_nthchildize_context (GtkSpinButton *spin_button,
gtk_widget_path_iter_add_class (siblings_path, up_pos, GTK_STYLE_CLASS_SPINBUTTON);
gtk_widget_path_iter_add_class (siblings_path, down_pos, GTK_STYLE_CLASS_SPINBUTTON);
if (panel == priv->down_panel)
if (is_down_panel)
gtk_widget_path_append_with_siblings (path, siblings_path, down_pos);
else
gtk_widget_path_append_with_siblings (path, siblings_path, up_pos);
@@ -846,12 +860,20 @@ static GtkStyleContext *
gtk_spin_button_panel_get_context (GtkSpinButton *spin_button,
GdkWindow *panel)
{
GtkStyleContext *context;
GtkSpinButtonPrivate *priv = spin_button->priv;
GtkStyleContext **contextp;
context = gtk_style_context_new ();
gtk_spin_button_panel_nthchildize_context (spin_button, context, panel);
contextp = (panel == priv->down_panel) ?
&priv->down_panel_context : &priv->up_panel_context;
return context;
if (*contextp == NULL)
{
*contextp = gtk_style_context_new ();
gtk_spin_button_panel_nthchildize_context (spin_button, *contextp,
panel == priv->down_panel);
}
return *contextp;
}
static void
@@ -874,8 +896,6 @@ gtk_spin_button_panel_get_size (GtkSpinButton *spin_button,
gtk_style_context_get_padding (context, state, &button_padding);
gtk_style_context_get_border (context, state, &button_border);
g_object_unref (context);
if (width)
*width = icon_size + button_padding.left + button_padding.right +
button_border.left + button_border.right;
@@ -1004,7 +1024,6 @@ gtk_spin_button_panel_draw (GtkSpinButton *spin_button,
cairo_restore (cr);
g_object_unref (icon_helper);
g_object_unref (context);
}
static void
@@ -1361,6 +1380,25 @@ gtk_spin_button_state_flags_changed (GtkWidget *widget,
}
}
static void
gtk_spin_button_style_updated (GtkWidget *widget)
{
GtkSpinButton *spin = GTK_SPIN_BUTTON (widget);
GtkSpinButtonPrivate *priv = spin->priv;
if (priv->down_panel_context)
gtk_spin_button_panel_nthchildize_context (spin,
priv->down_panel_context,
TRUE);
if (priv->up_panel_context)
gtk_spin_button_panel_nthchildize_context (spin,
priv->up_panel_context,
FALSE);
GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->style_updated (widget);
}
static gint
gtk_spin_button_scroll (GtkWidget *widget,
GdkEventScroll *event)
+3 -3
View File
@@ -36,9 +36,9 @@
*
* The GtkStack widget is a container which only shows
* one of its children at a time. In contrast to GtkNotebook,
* GtkStack does not provide a visible means for users
* to change the visible child. Instead, the #GtkStackSwitcher
* widget can be used with GtkStack to provide this functionality.
* GtkStack does not provide a means for users to change the
* visible child. Instead, the #GtkStackSwitcher widget can be
* used with GtkStack to provide this functionality.
*
* Transitions between pages can be animated as slides or
* fades. This can be controlled with gtk_stack_set_transition_type().
+2
View File
@@ -122,6 +122,8 @@ rebuild_child (GtkWidget *self,
{
button_child = gtk_label_new (title);
gtk_widget_set_tooltip_text (GTK_WIDGET (self), NULL);
gtk_style_context_remove_class (context, "image-button");
gtk_style_context_add_class (context, "text-button");
}
+1 -1
View File
@@ -277,7 +277,7 @@ gtk_theming_engine_finalize (GObject *object)
priv = GTK_THEMING_ENGINE (object)->priv;
g_free (priv->name);
G_OBJECT_GET_CLASS (gtk_theming_engine_parent_class)->finalize (object);
G_OBJECT_CLASS (gtk_theming_engine_parent_class)->finalize (object);
}
static void
+38 -2
View File
@@ -1651,6 +1651,9 @@ gtk_widget_class_init (GtkWidgetClass *klass)
/**
* GtkWidget::show:
* @widget: the object which received the signal.
*
* The ::show signal is emitted when @widget is shown, for example with
* gtk_widget_show().
*/
widget_signals[SHOW] =
g_signal_new (I_("show"),
@@ -1664,6 +1667,9 @@ gtk_widget_class_init (GtkWidgetClass *klass)
/**
* GtkWidget::hide:
* @widget: the object which received the signal.
*
* The ::hide signal is emitted when @widget is hidden, for example with
* gtk_widget_hide().
*/
widget_signals[HIDE] =
g_signal_new (I_("hide"),
@@ -1677,6 +1683,16 @@ gtk_widget_class_init (GtkWidgetClass *klass)
/**
* GtkWidget::map:
* @widget: the object which received the signal.
*
* The ::map signal is emitted when @widget is going to be mapped, that is
* when the widget is visible (which is controlled with
* gtk_widget_set_visible()) and all its parents up to the toplevel widget
* are also visible. Once the map has occurred, #GtkWidget::map-event will
* be emitted.
*
* The ::map signal can be used to determine whether a widget will be drawn,
* for instance it can resume an animation that was stopped during the
* emission of #GtkWidget::unmap.
*/
widget_signals[MAP] =
g_signal_new (I_("map"),
@@ -1690,6 +1706,13 @@ gtk_widget_class_init (GtkWidgetClass *klass)
/**
* GtkWidget::unmap:
* @widget: the object which received the signal.
*
* The ::unmap signal is emitted when @widget is going to be unmapped, which
* means that either it or any of its parents up to the toplevel widget have
* been set as hidden.
*
* As ::unmap indicates that a widget will not be shown any longer, it can be
* used to, for example, stop an animation on the widget.
*/
widget_signals[UNMAP] =
g_signal_new (I_("unmap"),
@@ -1703,6 +1726,10 @@ gtk_widget_class_init (GtkWidgetClass *klass)
/**
* GtkWidget::realize:
* @widget: the object which received the signal.
*
* The ::realize signal is emitted when @widget is associated with a
* #GdkWindow, which means that gtk_wiget_realize() has been called or the
* widget has been mapped (that is, it is going to be drawn).
*/
widget_signals[REALIZE] =
g_signal_new (I_("realize"),
@@ -1716,6 +1743,11 @@ gtk_widget_class_init (GtkWidgetClass *klass)
/**
* GtkWidget::unrealize:
* @widget: the object which received the signal.
*
* The ::unrealize signal is emitted when the #GdkWindow associated with
* @widget is destroyed, which means that gtk_widget_unrealize() has been
* called or the widget has been unmapped (that is, it is going to be
* hidden).
*/
widget_signals[UNREALIZE] =
g_signal_new (I_("unrealize"),
@@ -5399,8 +5431,9 @@ gtk_widget_size_allocate_with_baseline (GtkWidget *widget,
}
name = g_type_name (G_OBJECT_TYPE (G_OBJECT (widget)));
g_print ("gtk_widget_size_allocate: %*s%s %d %d",
g_print ("gtk_widget_size_allocate: %*s%s %d %d %d %d",
2 * depth, " ", name,
allocation->x, allocation->y,
allocation->width, allocation->height);
if (baseline != -1)
g_print (" baseline: %d", baseline);
@@ -11019,6 +11052,9 @@ gtk_widget_dispose (GObject *object)
g_clear_object (&priv->muxer);
while (priv->attached_windows)
gtk_window_set_attached_to (priv->attached_windows->data, NULL);
G_OBJECT_CLASS (gtk_widget_parent_class)->dispose (object);
}
@@ -13522,7 +13558,7 @@ gtk_widget_buildable_custom_finished (GtkBuildable *buildable,
if (i < n_actions)
{
gchar *description;
const gchar *description;
if (action_data->translatable && action_data->description->len)
description = _gtk_builder_parser_translate (gtk_builder_get_translation_domain (builder),
+3 -1
View File
@@ -76,7 +76,9 @@ void _gtk_widget_get_preferred_size_for_size (GtkWidget *widget,
GtkOrientation orientation,
gint size,
gint *minimum,
gint *natural);
gint *natural,
gint *minimum_baseline,
gint *natural_baseline);
gboolean _gtk_widget_has_baseline_support (GtkWidget *widget);
gboolean _gtk_widget_get_translation_to_window (GtkWidget *widget,
+9 -7
View File
@@ -2510,7 +2510,6 @@ remove_attach_widget (GtkWindow *window)
{
_gtk_widget_remove_attached_window (priv->attach_widget, window);
g_object_unref (priv->attach_widget);
priv->attach_widget = NULL;
}
}
@@ -2759,8 +2758,6 @@ gtk_window_set_attached_to (GtkWindow *window,
if (priv->attach_widget)
{
_gtk_widget_add_attached_window (priv->attach_widget, window);
g_object_ref (priv->attach_widget);
}
/* Update the style, as the widget path might change. */
@@ -4871,6 +4868,10 @@ gtk_window_get_position (GtkWindow *window,
* Hides @window, then reshows it, resetting the
* default size and position of the window. Used
* by GUI builders only.
*
* Deprecated: 3.10: GUI builders can call gtk_widget_hide(),
* gtk_widget_unrealize() and then gtk_widget_show() on @window
* themselves, if they still need this functionality.
**/
void
gtk_window_reshow_with_initial_size (GtkWindow *window)
@@ -7834,9 +7835,6 @@ gtk_window_compute_configure_request_size (GtkWindow *window,
info = gtk_window_get_geometry_info (window, FALSE);
gtk_window_guess_default_size (window, width, height);
gtk_window_get_remembered_size (window, &w, &h);
*width = MAX (*width, w);
*height = MAX (*height, h);
/* If window is empty so requests 0, default to random nonzero size */
if (*width == 0 && *height == 0)
@@ -7846,7 +7844,6 @@ gtk_window_compute_configure_request_size (GtkWindow *window,
}
/* Override with default size */
if (info)
{
if (info->default_width > 0)
@@ -7860,6 +7857,11 @@ gtk_window_compute_configure_request_size (GtkWindow *window,
info->default_height > 0 ? height : NULL);
}
/* Override with last size of this window */
gtk_window_get_remembered_size (window, &w, &h);
*width = MAX (*width, w);
*height = MAX (*height, h);
/* Override any size with gtk_window_resize() values */
if (info)
{
+1
View File
@@ -315,6 +315,7 @@ GtkWindowGroup *gtk_window_get_group (GtkWindow *window);
gboolean gtk_window_has_group (GtkWindow *window);
/* Ignore this unless you are writing a GUI builder */
GDK_DEPRECATED_IN_3_10
void gtk_window_reshow_with_initial_size (GtkWindow *window);
GtkWindowType gtk_window_get_window_type (GtkWindow *window);
+4
View File
@@ -176,6 +176,10 @@ TEST_PROGS += objects-finalize
objects_finalize_SOURCES = objects-finalize.c
objects_finalize_LDADD = $(progs_ldadd)
TEST_PROGS += window
window_SOURCES = window.c
window_LDADD = $(progs_ldadd)
EXTRA_DIST += \
file-chooser-test-dir/empty \
file-chooser-test-dir/text.txt
+1 -1
View File
@@ -653,7 +653,7 @@ test_file_chooser_button_with_response (const FileChooserButtonTest *setup, gint
{
WindowAndButton w;
SignalWatcher *watcher;
GtkWidget *fc_dialog;
GtkWidget *fc_dialog = NULL;
int iterations;
int i;
+4 -4
View File
@@ -26,11 +26,14 @@
typedef GType (*GTypeGetFunc) (void);
static gboolean finalized = FALSE;
static gboolean
main_loop_quit_cb (gpointer data)
{
gtk_main_quit ();
g_assert (finalized);
return FALSE;
}
@@ -48,7 +51,6 @@ test_finalize_object (gconstpointer data)
{
GType test_type = GPOINTER_TO_SIZE (data);
GObject *object;
gboolean finalized = FALSE;
object = g_object_new (test_type, NULL);
g_assert (G_IS_OBJECT (object));
@@ -61,13 +63,11 @@ test_finalize_object (gconstpointer data)
g_object_weak_ref (object, check_finalized, &finalized);
/* Toplevels are owned by GTK+, just tell GTK+ to destroy it */
if (GTK_IS_WINDOW (object))
if (GTK_IS_WINDOW (object) || GTK_IS_INVISIBLE (object))
gtk_widget_destroy (GTK_WIDGET (object));
else
g_object_unref (object);
g_assert (finalized);
/* Even if the object did finalize, it may have left some dangerous stuff in the GMainContext */
g_timeout_add (50, main_loop_quit_cb, NULL);
gtk_main();
+50
View File
@@ -0,0 +1,50 @@
#include <gtk/gtk.h>
static gboolean
stop_main (gpointer data)
{
gtk_main_quit ();
return G_SOURCE_REMOVE;
}
static void
test_default_size (void)
{
GtkWidget *window;
GtkWidget *box;
gint w, h;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
gtk_container_add (GTK_CONTAINER (window), box);
gtk_window_get_default_size (GTK_WINDOW (window), &w, &h);
g_assert (w == -1 && h == -1);
gtk_window_set_default_size (GTK_WINDOW (window), 300, 300);
gtk_window_get_default_size (GTK_WINDOW (window), &w, &h);
g_assert (w == 300 && h == 300);
gtk_widget_show_all (window);
g_timeout_add (1000, stop_main, NULL);
gtk_main ();
g_assert (gtk_widget_get_allocated_width (window) == 300);
g_assert (gtk_widget_get_allocated_height (window) == 300);
g_assert (gtk_widget_get_allocated_width (box) == 300);
g_assert (gtk_widget_get_allocated_height (box) == 300);
}
int
main (int argc, char *argv[])
{
gtk_test_init (&argc, &argv);
g_test_add_func ("/window/default-size", test_default_size);
return g_test_run ();
}
+2
View File
@@ -36,6 +36,8 @@ tests/reftests/border-image-url.ui
tests/reftests/box-packing.ui
tests/reftests/box-pseudo-classes.ref.ui
tests/reftests/box-pseudo-classes.ui
tests/reftests/button-wrapping.ref.ui
tests/reftests/button-wrapping.ui
tests/reftests/css-match-import.ref.ui
tests/reftests/css-match-import.ui
tests/reftests/css-match-inherit-different-state.ref.ui
+2691 -2248
View File
File diff suppressed because it is too large Load Diff
+2
View File
@@ -37,6 +37,8 @@ tests/reftests/border-image-url.ui
tests/reftests/box-packing.ui
tests/reftests/box-pseudo-classes.ref.ui
tests/reftests/box-pseudo-classes.ui
tests/reftests/button-wrapping.ref.ui
tests/reftests/button-wrapping.ui
tests/reftests/css-match-import.ref.ui
tests/reftests/css-match-import.ui
tests/reftests/css-match-inherit-different-state.ref.ui
+136 -138
View File
@@ -22,7 +22,7 @@
# Hendrik Richter <hendrikr@gnome.org>, 2004-2009.
# Hendrik Brandt <heb@gnome-de.org>, 2004-2005.
# Andre Klapper <ak-47@gmx.net>, 2008.
# Mario Blättermann <mario.blaettermann@gmail.com>, 2009-2012.
# Mario Blättermann <mario.blaettermann@gmail.com>, 2009-2013.
# Jakob Kramer <jakob.kramer@gmx.de>, 2010.
# Paul Seyfert <pseyfert@mathphys.fsk.uni-heidelberg.de>, 2011.
# Christian Kirbach <christian.kirbach@gmail.com>, 2009-2011, 2012.
@@ -32,8 +32,8 @@ msgstr ""
"Project-Id-Version: GTK+ master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk"
"%2b&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2013-03-20 23:44+0000\n"
"PO-Revision-Date: 2013-03-21 09:40+0100\n"
"POT-Creation-Date: 2013-04-27 17:41+0000\n"
"PO-Revision-Date: 2013-04-27 21:40+0100\n"
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
"Language-Team: Deutsch <gnome-de@gnome.org>\n"
"Language: de_DE\n"
@@ -41,9 +41,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.5.5\n"
"X-Poedit-Language: German\n"
"X-Poedit-Country: GERMANY\n"
"X-Generator: Poedit 1.5.4\n"
#: ../gdk/gdk.c:157
#, c-format
@@ -304,132 +302,132 @@ msgstr "Entf"
#. Translators: 'Mon' means Monitor here, and the XF86 prefix should be removed
#: ../gdk/keyname-table.h:3991
msgctxt "keyboard label"
msgid "MonBrightnessUp"
msgid "XF86MonBrightnessUp"
msgstr "Monitorhelligkeit erhöhen"
#: ../gdk/keyname-table.h:3992
msgctxt "keyboard label"
msgid "MonBrightnessDown"
msgid "XF86MonBrightnessDown"
msgstr "Monitorhelligkeit senken"
#: ../gdk/keyname-table.h:3993
msgctxt "keyboard label"
msgid "AudioMute"
msgid "XF86AudioMute"
msgstr "Stumm schalten"
#: ../gdk/keyname-table.h:3994
msgctxt "keyboard label"
msgid "AudioLowerVolume"
msgid "XF86AudioLowerVolume"
msgstr "Lautstärke senken"
#: ../gdk/keyname-table.h:3995
msgctxt "keyboard label"
msgid "AudioRaiseVolume"
msgid "XF86AudioRaiseVolume"
msgstr "Lautstärke erhöhen"
#: ../gdk/keyname-table.h:3996
msgctxt "keyboard label"
msgid "AudioPlay"
msgid "XF86AudioPlay"
msgstr "Wiedergabe starten"
#: ../gdk/keyname-table.h:3997
msgctxt "keyboard label"
msgid "AudioStop"
msgid "XF86AudioStop"
msgstr "Wiedergabe stoppen"
#: ../gdk/keyname-table.h:3998
msgctxt "keyboard label"
msgid "AudioNext"
msgid "XF86AudioNext"
msgstr "Nächster Titel"
#: ../gdk/keyname-table.h:3999
msgctxt "keyboard label"
msgid "AudioPrev"
msgid "XF86AudioPrev"
msgstr "Vorheriger Titel"
#: ../gdk/keyname-table.h:4000
msgctxt "keyboard label"
msgid "AudioRecord"
msgid "XF86AudioRecord"
msgstr "Aufnahme starten"
#: ../gdk/keyname-table.h:4001
msgctxt "keyboard label"
msgid "AudioPause"
msgid "XF86AudioPause"
msgstr "Aufnahme pausieren"
#: ../gdk/keyname-table.h:4002
msgctxt "keyboard label"
msgid "AudioRewind"
msgid "XF86AudioRewind"
msgstr "Zurückspulen"
#: ../gdk/keyname-table.h:4003
msgctxt "keyboard label"
msgid "AudioMedia"
msgstr "AudioMedia"
msgid "XF86AudioMedia"
msgstr "XF86AudioMedia"
#: ../gdk/keyname-table.h:4004
msgctxt "keyboard label"
msgid "ScreenSaver"
msgid "XF86ScreenSaver"
msgstr "Bildschirmschoner"
#: ../gdk/keyname-table.h:4005
msgctxt "keyboard label"
msgid "Battery"
msgid "XF86Battery"
msgstr "Batterie"
#: ../gdk/keyname-table.h:4006
msgctxt "keyboard label"
msgid "Launch1"
msgid "XF86Launch1"
msgstr "Starten1"
#: ../gdk/keyname-table.h:4007
msgctxt "keyboard label"
msgid "Forward"
msgid "XF86Forward"
msgstr "Vorwärts"
#: ../gdk/keyname-table.h:4008
msgctxt "keyboard label"
msgid "Back"
msgid "XF86Back"
msgstr "Rückwärts"
#: ../gdk/keyname-table.h:4009
msgctxt "keyboard label"
msgid "Sleep"
msgid "XF86Sleep"
msgstr "Bereitschaft"
#: ../gdk/keyname-table.h:4010
msgctxt "keyboard label"
msgid "Hibernate"
msgid "XF86Hibernate"
msgstr "Ruhezustand"
#: ../gdk/keyname-table.h:4011
msgctxt "keyboard label"
msgid "WLAN"
msgid "XF86WLAN"
msgstr "WLAN"
#: ../gdk/keyname-table.h:4012
msgctxt "keyboard label"
msgid "WebCam"
msgid "XF86WebCam"
msgstr "WebCam"
#: ../gdk/keyname-table.h:4013
msgctxt "keyboard label"
msgid "Display"
msgid "XF86Display"
msgstr "Anzeige"
#: ../gdk/keyname-table.h:4014
msgctxt "keyboard label"
msgid "TouchpadToggle"
msgstr "TouchpadToggle"
msgid "XF86TouchpadToggle"
msgstr "XF86TouchpadToggle"
#: ../gdk/keyname-table.h:4015
msgctxt "keyboard label"
msgid "WakeUp"
msgid "XF86WakeUp"
msgstr "Aufwecken"
#: ../gdk/keyname-table.h:4016
msgctxt "keyboard label"
msgid "Suspend"
msgid "XF86Suspend"
msgstr "In Bereitschaft versetzen"
#. Description of --sync in --help output
@@ -513,7 +511,7 @@ msgstr "Bearbeiten"
#: ../gtk/a11y/gtkcellaccessible.c:262
#: ../gtk/a11y/gtkcolorswatchaccessible.c:72
#: ../gtk/a11y/gtkentryaccessible.c:1541
#: ../gtk/a11y/gtkentryaccessible.c:1557
#: ../gtk/a11y/gtkexpanderaccessible.c:281
msgctxt "Action name"
msgid "Activate"
@@ -571,7 +569,7 @@ msgctxt "Action description"
msgid "Presses the combobox"
msgstr "Klickt das Kombinationsfeld an"
#: ../gtk/a11y/gtkentryaccessible.c:1550
#: ../gtk/a11y/gtkentryaccessible.c:1566
msgctxt "Action description"
msgid "Activates the entry"
msgstr "Eintrag aktivieren"
@@ -769,8 +767,8 @@ msgstr ""
#. * since we want to save the color first
#.
#: ../gtk/deprecated/gtkcolorseldialog.c:201 ../gtk/gtkappchooserdialog.c:509
#: ../gtk/gtkcolorchooserdialog.c:150 ../gtk/gtkfontchooserdialog.c:174
#: ../gtk/gtkprinteroptionwidget.c:550
#: ../gtk/gtkcolorchooserdialog.c:149 ../gtk/gtkfontchooserdialog.c:174
#: ../gtk/gtkprinteroptionwidget.c:552
msgid "_Select"
msgstr "Aus_wählen"
@@ -1014,7 +1012,7 @@ msgstr ""
#: ../gtk/gtkapplicationwindow.c:333 ../gtk/gtkprintoperation-unix.c:480
#: ../gtk/gtkprintoperation-win32.c:1445
msgid "Application"
msgstr "Anwendunge"
msgstr "Anwendung"
#: ../gtk/gtkassistant.c:1008
msgid "C_ontinue"
@@ -1177,7 +1175,7 @@ msgstr "%d %%"
msgid "Pick a Color"
msgstr "Wählen Sie eine Farbe"
#: ../gtk/gtkcolorchooserdialog.c:164
#: ../gtk/gtkcolorchooserdialog.c:162
msgid "Select a Color"
msgstr "Farbe auswählen"
@@ -1925,12 +1923,12 @@ msgid "System (%s)"
msgstr "System (%s)"
#. Open Link
#: ../gtk/gtklabel.c:6144
#: ../gtk/gtklabel.c:6167
msgid "_Open Link"
msgstr "Link ö_ffnen"
#. Copy Link Address
#: ../gtk/gtklabel.c:6156
#: ../gtk/gtklabel.c:6179
msgid "Copy _Link Address"
msgstr "Link-Adresse _kopieren"
@@ -2243,11 +2241,11 @@ msgstr "Dateisystem-Wurzel"
msgid "Authentication"
msgstr "Legitimation"
#: ../gtk/gtkprinteroptionwidget.c:546
#: ../gtk/gtkprinteroptionwidget.c:548
msgid "Select a filename"
msgstr "Dateiname auswählen"
#: ../gtk/gtkprinteroptionwidget.c:770
#: ../gtk/gtkprinteroptionwidget.c:772
msgid "Not available"
msgstr "Nicht verfügbar"
@@ -2343,7 +2341,7 @@ msgstr "Kein Papier mehr"
#. Translators: this is a printer status.
#: ../gtk/gtkprintoperation-win32.c:613
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2286
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2288
msgid "Paused"
msgstr "Pausiert"
@@ -2470,42 +2468,42 @@ msgstr "Allgemein"
#. * multiple pages on a sheet when printing
#.
#: ../gtk/gtkprintunixdialog.c:3058
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4622
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4634
msgid "Left to right, top to bottom"
msgstr "Links nach rechts, oben nach unten"
#: ../gtk/gtkprintunixdialog.c:3058
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4622
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4634
msgid "Left to right, bottom to top"
msgstr "Links nach rechts, unten nach oben"
#: ../gtk/gtkprintunixdialog.c:3059
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4623
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4635
msgid "Right to left, top to bottom"
msgstr "Rechts nach links, oben nach unten"
#: ../gtk/gtkprintunixdialog.c:3059
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4623
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4635
msgid "Right to left, bottom to top"
msgstr "Rechts nach links, unten nach oben"
#: ../gtk/gtkprintunixdialog.c:3060
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4624
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4636
msgid "Top to bottom, left to right"
msgstr "Oben nach unten, links nach rechts"
#: ../gtk/gtkprintunixdialog.c:3060
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4624
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4636
msgid "Top to bottom, right to left"
msgstr "Oben nach unten, rechts nach links"
#: ../gtk/gtkprintunixdialog.c:3061
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4625
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4637
msgid "Bottom to top, left to right"
msgstr "Unten nach oben, links nach rechts"
#: ../gtk/gtkprintunixdialog.c:3061
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4625
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4637
msgid "Bottom to top, right to left"
msgstr "Unten nach oben, rechts nach links"
@@ -2513,7 +2511,7 @@ msgstr "Unten nach oben, rechts nach links"
#. * dialog that controls in what order multiple pages are arranged
#.
#: ../gtk/gtkprintunixdialog.c:3065 ../gtk/gtkprintunixdialog.c:3078
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4702
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4714
msgid "Page Ordering"
msgstr "Reihenfolge"
@@ -4545,268 +4543,268 @@ msgstr "Vietnamesisch (VIQR)"
msgid "X Input Method"
msgstr "X-Eingabemethode"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1002
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1217
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1004
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1219
msgid "Username:"
msgstr "Benutzername:"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1003
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1226
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1005
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1228
msgid "Password:"
msgstr "Passwort:"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1042
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1239
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1044
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1241
#, c-format
msgid "Authentication is required to print document '%s' on printer %s"
msgstr "Das Drucken von Dokument »%s« auf Drucker %s erfordert Legitimation"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1044
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1046
#, c-format
msgid "Authentication is required to print a document on %s"
msgstr "Das Drucken eines Dokuments auf %s erfordert Legitimation"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1048
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1050
#, c-format
msgid "Authentication is required to get attributes of job '%s'"
msgstr ""
"Das Auslesen von Attributen des Druckauftrags »%s« erfordert Legitimation"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1050
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1052
msgid "Authentication is required to get attributes of a job"
msgstr "Das Auslesen von Attributen eines Druckauftrags erfordert Legitimation"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1054
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1056
#, c-format
msgid "Authentication is required to get attributes of printer %s"
msgstr "Das Auslesen von Attributen des Druckers %s erfordert Legitimation"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1056
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1058
msgid "Authentication is required to get attributes of a printer"
msgstr "Das Auslesen von Attributen eines Druckers erfordert Legitimation"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1059
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1061
#, c-format
msgid "Authentication is required to get default printer of %s"
msgstr "Das Feststellen des Vorgabedruckers auf %s erfordert Legitimation"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1062
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1064
#, c-format
msgid "Authentication is required to get printers from %s"
msgstr "Das Auslesen von Druckern auf %s erfordert Legitimation"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1067
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1069
#, c-format
msgid "Authentication is required to get a file from %s"
msgstr "Der Zugriff auf eine Datei von %s erfordert Legitimation"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1069
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1071
#, c-format
msgid "Authentication is required on %s"
msgstr "Der Zugriff auf %s erfordert Legitimation"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1211
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1213
msgid "Domain:"
msgstr "Domäne:"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1241
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1243
#, c-format
msgid "Authentication is required to print document '%s'"
msgstr "Das Drucken eines Dokuments »%s« erfordert Legitimation"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1246
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1248
#, c-format
msgid "Authentication is required to print this document on printer %s"
msgstr "Das Drucken dieses Dokuments auf Drucker %s erfordert Legitimation"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1248
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1250
msgid "Authentication is required to print this document"
msgstr "Das Drucken dieses Dokuments erfordert Legitimation"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1810
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1812
#, c-format
msgid "Printer '%s' is low on toner."
msgstr "Drucker »%s« hat nur noch wenig Toner."
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1811
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1813
#, c-format
msgid "Printer '%s' has no toner left."
msgstr "Drucker »%s« hat keinen Toner mehr."
#. Translators: "Developer" like on photo development context
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1813
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1815
#, c-format
msgid "Printer '%s' is low on developer."
msgstr "Drucker »%s« hat nur noch wenig Entwickler."
#. Translators: "Developer" like on photo development context
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1815
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1817
#, c-format
msgid "Printer '%s' is out of developer."
msgstr "Drucker »%s« hat keinen Entwickler mehr."
#. Translators: "marker" is one color bin of the printer
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1817
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1819
#, c-format
msgid "Printer '%s' is low on at least one marker supply."
msgstr ""
"Drucker »%s« hat nur noch wenig Farbe für mindestens einen Farbbehälter."
#. Translators: "marker" is one color bin of the printer
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1819
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1821
#, c-format
msgid "Printer '%s' is out of at least one marker supply."
msgstr "Drucker »%s« hat keine Farbe mehr für mindestens einen Farbbehälter."
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1820
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1822
#, c-format
msgid "The cover is open on printer '%s'."
msgstr "Die Abdeckung des Druckers »%s« ist geöffnet."
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1821
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1823
#, c-format
msgid "The door is open on printer '%s'."
msgstr "Die Klappe des Druckers »%s« ist geöffnet."
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1822
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1824
#, c-format
msgid "Printer '%s' is low on paper."
msgstr "Der Drucker »%s« hat nur noch wenig Papier."
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1823
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1825
#, c-format
msgid "Printer '%s' is out of paper."
msgstr "Der Drucker »%s« hat kein Papier mehr."
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1824
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1826
#, c-format
msgid "Printer '%s' is currently offline."
msgstr "Der Drucker »%s« ist momentan nicht betriebsbereit."
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1825
#: ../modules/printbackends/cups/gtkprintbackendcups.c:1827
#, c-format
msgid "There is a problem on printer '%s'."
msgstr "Es besteht ein Problem mit dem Drucker »%s«."
#. Translators: this is a printer status.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2283
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2285
msgid "Paused; Rejecting Jobs"
msgstr "Pausiert; Aufträge werden abgewiesen"
#. Translators: this is a printer status.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2289
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2291
msgid "Rejecting Jobs"
msgstr "Aufträge werden abgewiesen"
#. Translators: this string connects multiple printer states together.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2331
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2333
msgid "; "
msgstr "; "
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3845
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3857
msgid "Two Sided"
msgstr "Beidseitig"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3846
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3858
msgid "Paper Type"
msgstr "Papierart"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3847
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3859
msgid "Paper Source"
msgstr "Papiereinzug"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3848
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3860
msgid "Output Tray"
msgstr "Ausgabeschacht"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3849
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3861
msgid "Resolution"
msgstr "Auflösung"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3850
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3862
msgid "GhostScript pre-filtering"
msgstr "GhostScript-Vorfilterung"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3859
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3871
msgid "One Sided"
msgstr "Einseitig"
#. Translators: this is an option of "Two Sided"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3861
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3873
msgid "Long Edge (Standard)"
msgstr "Langer Rand (Vorgabe)"
#. Translators: this is an option of "Two Sided"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3863
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3875
msgid "Short Edge (Flip)"
msgstr "Kurzer Rand (Umdrehen)"
#. Translators: this is an option of "Paper Source"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3865
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3867
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3875
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3877
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3879
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3887
msgid "Auto Select"
msgstr "Automatische Auswahl"
#. Translators: this is an option of "Paper Source"
#. Translators: this is an option of "Resolution"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3869
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3871
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3873
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3877
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4365
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3881
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3883
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3885
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3889
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4377
msgid "Printer Default"
msgstr "Vorgabe-Drucker"
#. Translators: this is an option of "GhostScript"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3879
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3891
msgid "Embed GhostScript fonts only"
msgstr "Nur GhostScript-Schriften einbinden"
#. Translators: this is an option of "GhostScript"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3881
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3893
msgid "Convert to PS level 1"
msgstr "Zu PS Level 1 konvertieren"
#. Translators: this is an option of "GhostScript"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3883
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3895
msgid "Convert to PS level 2"
msgstr "Zu PS Level 2 konvertieren"
#. Translators: this is an option of "GhostScript"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3885
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3897
msgid "No pre-filtering"
msgstr "Keine Vorfilterung"
#. Translators: "Miscellaneous" is the label for a button, that opens
#. up an extra panel of settings in a print dialog.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3894
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3906
msgid "Miscellaneous"
msgstr "Erweitert"
#. Translators: These strings name the possible values of the
#. * job priority option in the print dialog
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4617
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4629
msgid "Urgent"
msgstr "Dringend"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4617
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4629
msgid "High"
msgstr "Hoch"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4617
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4629
msgid "Medium"
msgstr "Mittel"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4617
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4629
msgid "Low"
msgstr "Niedrig"
#. Translators, this string is used to label the job priority option
#. * in the print dialog
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4647
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4659
msgid "Job Priority"
msgstr "Priorität"
@@ -4814,59 +4812,59 @@ msgstr "Priorität"
#. Translators, this string is used to label the billing info entry
#. * in the print dialog
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4658
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4670
msgid "Billing Info"
msgstr "Abrechnungsinfo"
#. Translators, these strings are names for various 'standard' cover
#. * pages that the printing system may support.
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4673
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4685
msgid "None"
msgstr "Keine"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4673
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4685
msgid "Classified"
msgstr "Klassifiziert"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4673
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4685
msgid "Confidential"
msgstr "Vertraulich"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4673
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4685
msgid "Secret"
msgstr "Geheim"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4673
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4685
msgid "Standard"
msgstr "Standard"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4673
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4685
msgid "Top Secret"
msgstr "Streng geheim"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4673
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4685
msgid "Unclassified"
msgstr "Unklassifiziert"
#. Translators, this string is used to label the pages-per-sheet option
#. * in the print dialog
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4684
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4696
msgid "Pages per Sheet"
msgstr "Seiten pro Blatt"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the front cover page.
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4744
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4756
msgid "Before"
msgstr "Vorne"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the back cover page.
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4759
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4771
msgid "After"
msgstr "Hinten"
@@ -4874,14 +4872,14 @@ msgstr "Hinten"
#. * a print job is printed. Possible values are 'now', a specified time,
#. * or 'on hold'
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4779
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4791
msgid "Print at"
msgstr "Drucken um"
#. Translators: this is the name of the option that allows the user
#. * to specify a time when a print job will be printed.
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4790
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4802
msgid "Print at time"
msgstr "Drucken zu Uhrzeit"
@@ -4889,17 +4887,17 @@ msgstr "Drucken zu Uhrzeit"
#. * size. The two placeholders are replaced with the width and height
#. * in points. E.g: "Custom 230.4x142.9"
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4825
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4837
#, c-format
msgid "Custom %sx%s"
msgstr "Benutzerdefiniert %s×%s"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4906
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4918
msgid "Printer Profile"
msgstr "Druckerfarbprofil"
#. TRANSLATORS: this is when color profile information is unavailable
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4913
#: ../modules/printbackends/cups/gtkprintbackendcups.c:4925
msgid "Unavailable"
msgstr "Nicht verfügbar"
@@ -4923,32 +4921,32 @@ msgstr "Nicht angegebenes Profil"
msgid "output"
msgstr "Ausgabe"
#: ../modules/printbackends/file/gtkprintbackendfile.c:521
#: ../modules/printbackends/file/gtkprintbackendfile.c:527
msgid "Print to File"
msgstr "In Datei drucken"
#: ../modules/printbackends/file/gtkprintbackendfile.c:647
#: ../modules/printbackends/file/gtkprintbackendfile.c:653
msgid "PDF"
msgstr "PDF"
#: ../modules/printbackends/file/gtkprintbackendfile.c:647
#: ../modules/printbackends/file/gtkprintbackendfile.c:653
msgid "Postscript"
msgstr "Postscript"
#: ../modules/printbackends/file/gtkprintbackendfile.c:647
#: ../modules/printbackends/file/gtkprintbackendfile.c:653
msgid "SVG"
msgstr "SVG"
#: ../modules/printbackends/file/gtkprintbackendfile.c:660
#: ../modules/printbackends/file/gtkprintbackendfile.c:666
#: ../modules/printbackends/test/gtkprintbackendtest.c:501
msgid "Pages per _sheet:"
msgstr "Seiten pro _Blatt:"
#: ../modules/printbackends/file/gtkprintbackendfile.c:719
#: ../modules/printbackends/file/gtkprintbackendfile.c:725
msgid "File"
msgstr "Datei"
#: ../modules/printbackends/file/gtkprintbackendfile.c:729
#: ../modules/printbackends/file/gtkprintbackendfile.c:735
msgid "_Output format"
msgstr "_Ausgabeformat"
+1016 -1157
View File
File diff suppressed because it is too large Load Diff
+345 -468
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -3162,7 +3162,7 @@ msgstr "Su_mažinti"
#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:392 ../gtk/gtkswitch.c:583
msgctxt "switch"
msgid "ON"
msgstr "Įjungta"
msgstr ""
#. Translators: if the "off" state label requires more than three
#. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state
@@ -3170,7 +3170,7 @@ msgstr "Įjungta"
#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:393 ../gtk/gtkswitch.c:598
msgctxt "switch"
msgid "OFF"
msgstr "Išjungta"
msgstr ""
#: ../gtk/gtktextbufferrichtext.c:649
#, c-format
+11
View File
@@ -27,6 +27,7 @@ endif
noinst_PROGRAMS = $(TEST_PROGS) \
animated-resizing \
motion-compression \
scrolling-performance \
simple \
flicker \
print-editor \
@@ -158,6 +159,7 @@ endif
animated_resizing_DEPENDENCIES = $(TEST_DEPS)
flicker_DEPENDENCIES = $(TEST_DEPS)
motion_compression_DEPENDENCIES = $(TEST_DEPS)
scrolling_performance_DEPENDENCIES = $(TEST_DEPS)
simple_DEPENDENCIES = $(TEST_DEPS)
print_editor_DEPENDENCIES = $(TEST_DEPS)
video_timer_DEPENDENCIES = $(TEST_DEPS)
@@ -263,6 +265,15 @@ testrevealer_DEPENDENCIES = $(TEST_DEPS)
animated_resizing_SOURCES = \
animated-resizing.c \
frame-stats.c \
frame-stats.h \
variable.c \
variable.h
scrolling_performance_SOURCES = \
scrolling-performance.c \
frame-stats.c \
frame-stats.h \
variable.c \
variable.h
+226 -67
View File
@@ -7,7 +7,7 @@ window1
<AtkComponent>
layer: window
alpha: 1
unnamed-GtkContainerAccessible-0
dialog-vbox1
"filler"
parent: window1
index: 0
@@ -16,18 +16,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkContainerAccessible-1
box
"filler"
parent: unnamed-GtkContainerAccessible-0
parent: dialog-vbox1
index: 0
state: enabled sensitive showing vertical visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkImageAccessible-2
logo_image
"icon"
parent: unnamed-GtkContainerAccessible-1
parent: box
index: 0
state: enabled sensitive showing visible
toolkit: gtk
@@ -35,11 +35,11 @@ window1
layer: widget
alpha: 1
<AtkImage>
image size: -1 x -1
image size: 20 x 20
image description: (null)
FancyPants
name_label
"label"
parent: unnamed-GtkContainerAccessible-1
parent: box
index: 1
name: FancyPants
state: enabled focusable multi-line sensitive showing visible
@@ -76,9 +76,9 @@ window1
variant: <omitted>
weight: <omitted>
wrap-mode: word
unnamed-GtkNotebookAccessible-3
notebook
"page tab list"
parent: unnamed-GtkContainerAccessible-1
parent: box
index: 2
state: enabled sensitive showing visible
toolkit: gtk
@@ -86,16 +86,16 @@ window1
layer: widget
alpha: 1
<AtkSelection>
selected children: unnamed-GtkNotebookPageAccessible-4
unnamed-GtkNotebookPageAccessible-4
selected children: unnamed-GtkNotebookPageAccessible-0
unnamed-GtkNotebookPageAccessible-0
"page tab"
parent: unnamed-GtkNotebookAccessible-3
parent: notebook
index: 0
state: enabled selectable selected showing visible
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkContainerAccessible-5
page_vbox
"filler"
index: 0
state: enabled sensitive showing vertical visible
@@ -103,9 +103,9 @@ window1
<AtkComponent>
layer: widget
alpha: 1
0.99
version_label
"label"
parent: unnamed-GtkContainerAccessible-5
parent: page_vbox
index: 0
name: 0.99
state: enabled focusable multi-line sensitive showing visible
@@ -142,9 +142,9 @@ window1
variant: <omitted>
weight: <omitted>
wrap-mode: word
comments
comments_label
"label"
parent: unnamed-GtkContainerAccessible-5
parent: page_vbox
index: 1
name: comments
state: enabled focusable multi-line sensitive showing visible
@@ -181,18 +181,18 @@ window1
variant: <omitted>
weight: <omitted>
wrap-mode: word
unnamed-GtkContainerAccessible-6
hbox
"filler"
parent: unnamed-GtkContainerAccessible-5
parent: page_vbox
index: 2
state: enabled horizontal sensitive showing visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
Website
website_label
"label"
parent: unnamed-GtkContainerAccessible-6
parent: hbox
index: 0
name: Website
state: enabled focusable multi-line sensitive showing visible
@@ -229,9 +229,9 @@ window1
variant: <omitted>
weight: <omitted>
wrap-mode: word
no comments
copyright_label
"label"
parent: unnamed-GtkContainerAccessible-5
parent: page_vbox
index: 3
name: no comments
state: enabled focusable multi-line sensitive showing visible
@@ -268,10 +268,9 @@ window1
variant: <omitted>
weight: <omitted>
wrap-mode: word
This program comes with ABSOLUTELY NO WARRANTY;
for details, visit http://www.gnu.org/licenses/gpl.html
license_label
"label"
parent: unnamed-GtkContainerAccessible-5
parent: page_vbox
index: 4
name: This program comes with ABSOLUTELY NO WARRANTY;
for details, visit http://www.gnu.org/licenses/gpl.html
@@ -284,7 +283,7 @@ for details, visit http://www.gnu.org/licenses/gpl.html
text: This program comes with ABSOLUTELY NO WARRANTY;
for details, visit http://www.gnu.org/licenses/gpl.html
character count: 103
caret offset: 0
caret offset: 67
default attributes: bg-color: <omitted>
bg-full-height: 0
direction: <omitted>
@@ -310,53 +309,179 @@ for details, visit http://www.gnu.org/licenses/gpl.html
variant: <omitted>
weight: <omitted>
wrap-mode: word
unnamed-GtkContainerAccessible-7
unnamed-GtkNotebookPageAccessible-1
"page tab"
parent: notebook
index: 1
state: enabled selectable visible
<AtkComponent>
layer: widget
alpha: 1
credits_page
"filler"
index: 0
state: enabled sensitive vertical visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
scrolledwindow1
"scroll pane"
parent: credits_page
index: 0
state: enabled focusable sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
viewport1
"viewport"
parent: scrolledwindow1
index: 0
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
credits_grid
"panel"
parent: viewport1
index: 0
state: enabled sensitive vertical visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkRangeAccessible-2
"scroll bar"
parent: scrolledwindow1
state: enabled horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkValue>
minimum value: 0.000000
maximum value: 0.000000
current value: 0.000000
minimum increment: 39.200000
unnamed-GtkRangeAccessible-3
"scroll bar"
parent: scrolledwindow1
state: enabled sensitive vertical visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkValue>
minimum value: 0.000000
maximum value: 0.000000
current value: 0.000000
minimum increment: 13.400000
unnamed-GtkNotebookPageAccessible-4
"page tab"
parent: notebook
index: 2
state: enabled selectable visible
<AtkComponent>
layer: widget
alpha: 1
license_page
"filler"
index: 0
state: enabled sensitive vertical visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
scrolledwindow2
"scroll pane"
parent: license_page
index: 0
state: enabled focusable sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
license_view
"text"
parent: scrolledwindow2
index: 0
state: enabled focusable multi-line sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkText>
text:
character count: 0
caret offset: 0
default attributes: bg-color: <omitted>
bg-full-height: false
direction: <omitted>
editable: false
family-name: <omitted>
fg-color: <omitted>
indent: 0
invisible: false
justification: left
language: <omitted>
left-margin: 8
pixels-above-lines: 0
pixels-below-lines: 0
pixels-inside-wrap: 0
right-margin: 8
rise: 0
scale: 1
size: <omitted>
stretch: <omitted>
strikethrough: false
style: <omitted>
underline: none
variant: <omitted>
weight: <omitted>
wrap-mode: none
<AtkStreamableContent>
mime types: application/x-gtk-text-buffer-rich-text text/plain
unnamed-GtkRangeAccessible-5
"scroll bar"
parent: scrolledwindow2
state: enabled horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkValue>
minimum value: 0.000000
maximum value: 0.000000
current value: 0.000000
minimum increment: 39.800000
unnamed-GtkRangeAccessible-6
"scroll bar"
parent: scrolledwindow2
state: enabled sensitive vertical visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkValue>
minimum value: 0.000000
maximum value: 0.000000
current value: 0.000000
minimum increment: 14.000000
dialog-action_area1
"filler"
parent: unnamed-GtkContainerAccessible-0
parent: dialog-vbox1
index: 1
state: enabled horizontal sensitive showing visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkToggleButtonAccessible-8
"toggle button"
parent: unnamed-GtkContainerAccessible-7
index: 0
name: License
state: enabled focusable sensitive
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkImage>
image size: -1 x -1
image description: (null)
<AtkAction>
action 0 name: click
action 0 description: Clicks the button
action 0 keybinding: <Alt>l
unnamed-GtkToggleButtonAccessible-9
"toggle button"
parent: unnamed-GtkContainerAccessible-7
index: 1
name: Credits
state: enabled focusable sensitive
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkImage>
image size: 20 x 20
image description: (null)
<AtkAction>
action 0 name: click
action 0 description: Clicks the button
action 0 keybinding: <Alt>r
unnamed-GtkButtonAccessible-10
close_button
"push button"
parent: unnamed-GtkContainerAccessible-7
index: 2
parent: dialog-action_area1
index: 0
name: Close
state: enabled focusable sensitive showing visible default
toolkit: gtk
@@ -370,3 +495,37 @@ for details, visit http://www.gnu.org/licenses/gpl.html
action 0 name: click
action 0 description: Clicks the button
action 0 keybinding: <Alt>c
license_button
"toggle button"
parent: dialog-action_area1
index: 1
name: License
state: enabled focusable sensitive
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkImage>
image size: -1 x -1
image description: (null)
<AtkAction>
action 0 name: click
action 0 description: Clicks the button
action 0 keybinding: <Alt>l
credits_button
"toggle button"
parent: dialog-action_area1
index: 2
name: Credits
state: enabled focusable sensitive
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
<AtkImage>
image size: 20 x 20
image description: (null)
<AtkAction>
action 0 name: click
action 0 description: Clicks the button
action 0 keybinding: <Alt>r
+16 -16
View File
@@ -9,7 +9,7 @@ window1
button1
"push button"
index: 0
name: Page 1
name:
state: enabled focusable sensitive showing visible
toolkit: gtk
<AtkComponent>
@@ -24,7 +24,7 @@ window1
button2
"push button"
index: 0
name: Page 2
name:
state: enabled focusable sensitive visible
toolkit: gtk
<AtkComponent>
@@ -36,18 +36,18 @@ window1
<AtkAction>
action 0 name: click
action 0 description: Clicks the button
unnamed-GtkContainerAccessible-0
action_area
"filler"
parent: unnamed-GtkContainerAccessible-1
parent: content_box
index: 1
state: enabled horizontal sensitive showing visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkButtonAccessible-2
close
"push button"
parent: unnamed-GtkContainerAccessible-0
parent: action_area
index: 0
name: Close
state: enabled focusable sensitive
@@ -62,9 +62,9 @@ window1
action 0 name: click
action 0 description: Clicks the button
action 0 keybinding: <Alt>c
unnamed-GtkButtonAccessible-3
cancel
"push button"
parent: unnamed-GtkContainerAccessible-0
parent: action_area
index: 1
name: Cancel
state: enabled focusable sensitive showing visible
@@ -79,9 +79,9 @@ window1
action 0 name: click
action 0 description: Clicks the button
action 0 keybinding: <Alt>c
unnamed-GtkButtonAccessible-4
last
"push button"
parent: unnamed-GtkContainerAccessible-0
parent: action_area
index: 2
name: Finish
state: focusable
@@ -96,9 +96,9 @@ window1
action 0 name: click
action 0 description: Clicks the button
action 0 keybinding: <Alt>f
unnamed-GtkButtonAccessible-5
back
"push button"
parent: unnamed-GtkContainerAccessible-0
parent: action_area
index: 3
name: Go Back
state: enabled focusable sensitive
@@ -113,9 +113,9 @@ window1
action 0 name: click
action 0 description: Clicks the button
action 0 keybinding: <Alt>b
unnamed-GtkButtonAccessible-6
forward
"push button"
parent: unnamed-GtkContainerAccessible-0
parent: action_area
index: 4
name: Continue
state: focusable showing visible
@@ -130,9 +130,9 @@ window1
action 0 name: click
action 0 description: Clicks the button
action 0 keybinding: <Alt>o
unnamed-GtkButtonAccessible-7
apply
"push button"
parent: unnamed-GtkContainerAccessible-0
parent: action_area
index: 5
name: Apply
state: enabled focusable sensitive
+146 -146
View File
@@ -7,7 +7,7 @@ window1
<AtkComponent>
layer: window
alpha: 1
unnamed-GtkContainerAccessible-0
vbox
"filler"
parent: window1
index: 0
@@ -16,36 +16,36 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkContainerAccessible-1
unnamed-GtkContainerAccessible-0
"color chooser"
parent: unnamed-GtkContainerAccessible-0
parent: vbox
index: 0
state: enabled sensitive showing vertical visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkContainerAccessible-2
unnamed-GtkContainerAccessible-1
"filler"
parent: unnamed-GtkContainerAccessible-1
parent: unnamed-GtkContainerAccessible-0
index: 0
state: enabled horizontal sensitive showing visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkContainerAccessible-3
unnamed-GtkContainerAccessible-2
"filler"
parent: unnamed-GtkContainerAccessible-2
parent: unnamed-GtkContainerAccessible-1
index: 0
state: enabled sensitive showing vertical visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-4
unnamed-GtkWidgetAccessible-3
"color chooser"
parent: unnamed-GtkContainerAccessible-3
parent: unnamed-GtkContainerAccessible-2
index: 0
name: Color Wheel
description: Select the color you want from the outer ring. Select the darkness or lightness of that color using the inner triangle.
@@ -60,36 +60,36 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkContainerAccessible-5
unnamed-GtkContainerAccessible-4
"filler"
parent: unnamed-GtkContainerAccessible-3
parent: unnamed-GtkContainerAccessible-2
index: 1
state: enabled horizontal sensitive showing visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkFrameAccessible-6
unnamed-GtkFrameAccessible-5
"panel"
parent: unnamed-GtkContainerAccessible-5
parent: unnamed-GtkContainerAccessible-4
index: 0
state: enabled sensitive showing visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkContainerAccessible-7
unnamed-GtkContainerAccessible-6
"filler"
parent: unnamed-GtkFrameAccessible-6
parent: unnamed-GtkFrameAccessible-5
index: 0
state: enabled horizontal sensitive showing visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-8
unnamed-GtkWidgetAccessible-7
"unknown"
parent: unnamed-GtkContainerAccessible-7
parent: unnamed-GtkContainerAccessible-6
index: 0
description: The previously-selected color, for comparison to the color you're selecting now.
state: enabled sensitive showing visible
@@ -97,9 +97,9 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-9
unnamed-GtkWidgetAccessible-8
"unknown"
parent: unnamed-GtkContainerAccessible-7
parent: unnamed-GtkContainerAccessible-6
index: 1
description: The color you've chosen.
state: enabled sensitive showing visible
@@ -107,9 +107,9 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkButtonAccessible-10
unnamed-GtkButtonAccessible-9
"push button"
parent: unnamed-GtkContainerAccessible-5
parent: unnamed-GtkContainerAccessible-4
index: 1
description: Click the eyedropper, then click a color anywhere on your screen to select that color.
state: enabled focusable sensitive showing visible
@@ -123,18 +123,18 @@ window1
<AtkAction>
action 0 name: click
action 0 description: Clicks the button
unnamed-GtkContainerAccessible-11
unnamed-GtkContainerAccessible-10
"filler"
parent: unnamed-GtkContainerAccessible-2
parent: unnamed-GtkContainerAccessible-1
index: 1
state: enabled sensitive showing vertical visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkContainerAccessible-12
unnamed-GtkContainerAccessible-11
"panel"
parent: unnamed-GtkContainerAccessible-11
parent: unnamed-GtkContainerAccessible-10
index: 0
state: enabled horizontal sensitive showing visible
toolkit: gtk
@@ -143,7 +143,7 @@ window1
alpha: 1
#FFFFFF
"text"
parent: unnamed-GtkContainerAccessible-12
parent: unnamed-GtkContainerAccessible-11
index: 0
description: You can enter an HTML-style hexadecimal color value, or simply a color name such as 'orange' in this entry.
labelled-by: Color name:
@@ -187,7 +187,7 @@ window1
action 0 keybinding: <Alt>n
Color name:
"label"
parent: unnamed-GtkContainerAccessible-12
parent: unnamed-GtkContainerAccessible-11
index: 1
name: Color name:
label-for: #FFFFFF
@@ -227,7 +227,7 @@ window1
wrap-mode: word
255
"text"
parent: unnamed-GtkContainerAccessible-12
parent: unnamed-GtkContainerAccessible-11
index: 2
description: Transparency of the color.
state: editable enabled focusable sensitive single-line
@@ -267,9 +267,9 @@ window1
<AtkAction>
action 0 name: activate
action 0 description: Activates the entry
unnamed-GtkScaleAccessible-13
unnamed-GtkScaleAccessible-12
"slider"
parent: unnamed-GtkContainerAccessible-12
parent: unnamed-GtkContainerAccessible-11
index: 3
description: Transparency of the color.
labelled-by: Opacity:
@@ -285,10 +285,10 @@ window1
minimum increment: 1.000000
Opacity:
"label"
parent: unnamed-GtkContainerAccessible-12
parent: unnamed-GtkContainerAccessible-11
index: 4
name: Opacity:
label-for: unnamed-GtkScaleAccessible-13
label-for: unnamed-GtkScaleAccessible-12
state: enabled multi-line sensitive
toolkit: gtk
<AtkComponent>
@@ -323,9 +323,9 @@ window1
variant: <omitted>
weight: <omitted>
wrap-mode: word
unnamed-GtkWidgetAccessible-14
unnamed-GtkWidgetAccessible-13
"separator"
parent: unnamed-GtkContainerAccessible-12
parent: unnamed-GtkContainerAccessible-11
index: 5
state: enabled horizontal sensitive showing visible
toolkit: gtk
@@ -334,10 +334,10 @@ window1
alpha: 1
255
"spin button"
parent: unnamed-GtkContainerAccessible-12
parent: unnamed-GtkContainerAccessible-11
index: 6
description: Amount of blue light in the color.
controller-for: unnamed-GtkWidgetAccessible-4
controller-for: unnamed-GtkWidgetAccessible-3
labelled-by: Blue:
state: editable enabled focusable horizontal sensitive showing single-line visible
toolkit: gtk
@@ -384,7 +384,7 @@ window1
minimum increment: 1.000000
Blue:
"label"
parent: unnamed-GtkContainerAccessible-12
parent: unnamed-GtkContainerAccessible-11
index: 7
name: Blue:
label-for: 255
@@ -424,10 +424,10 @@ window1
wrap-mode: word
255
"spin button"
parent: unnamed-GtkContainerAccessible-12
parent: unnamed-GtkContainerAccessible-11
index: 8
description: Amount of green light in the color.
controller-for: unnamed-GtkWidgetAccessible-4
controller-for: unnamed-GtkWidgetAccessible-3
labelled-by: Green:
state: editable enabled focusable horizontal sensitive showing single-line visible
toolkit: gtk
@@ -474,7 +474,7 @@ window1
minimum increment: 1.000000
Green:
"label"
parent: unnamed-GtkContainerAccessible-12
parent: unnamed-GtkContainerAccessible-11
index: 9
name: Green:
label-for: 255
@@ -514,10 +514,10 @@ window1
wrap-mode: word
255
"spin button"
parent: unnamed-GtkContainerAccessible-12
parent: unnamed-GtkContainerAccessible-11
index: 10
description: Amount of red light in the color.
controller-for: unnamed-GtkWidgetAccessible-4
controller-for: unnamed-GtkWidgetAccessible-3
labelled-by: Red:
state: editable enabled focusable horizontal sensitive showing single-line visible
toolkit: gtk
@@ -564,7 +564,7 @@ window1
minimum increment: 1.000000
Red:
"label"
parent: unnamed-GtkContainerAccessible-12
parent: unnamed-GtkContainerAccessible-11
index: 11
name: Red:
label-for: 255
@@ -604,10 +604,10 @@ window1
wrap-mode: word
100
"spin button"
parent: unnamed-GtkContainerAccessible-12
parent: unnamed-GtkContainerAccessible-11
index: 12
description: Brightness of the color.
controller-for: unnamed-GtkWidgetAccessible-4
controller-for: unnamed-GtkWidgetAccessible-3
labelled-by: Value:
state: editable enabled focusable horizontal sensitive showing single-line visible
toolkit: gtk
@@ -654,7 +654,7 @@ window1
minimum increment: 1.000000
Value:
"label"
parent: unnamed-GtkContainerAccessible-12
parent: unnamed-GtkContainerAccessible-11
index: 13
name: Value:
label-for: 100
@@ -694,10 +694,10 @@ window1
wrap-mode: word
0
"spin button"
parent: unnamed-GtkContainerAccessible-12
parent: unnamed-GtkContainerAccessible-11
index: 14
description: Intensity of the color.
controller-for: unnamed-GtkWidgetAccessible-4
controller-for: unnamed-GtkWidgetAccessible-3
labelled-by: Saturation:
state: editable enabled focusable horizontal sensitive showing single-line visible
toolkit: gtk
@@ -744,7 +744,7 @@ window1
minimum increment: 1.000000
Saturation:
"label"
parent: unnamed-GtkContainerAccessible-12
parent: unnamed-GtkContainerAccessible-11
index: 15
name: Saturation:
label-for: 0
@@ -784,10 +784,10 @@ window1
wrap-mode: word
0
"spin button"
parent: unnamed-GtkContainerAccessible-12
parent: unnamed-GtkContainerAccessible-11
index: 16
description: Position on the color wheel.
controller-for: unnamed-GtkWidgetAccessible-4
controller-for: unnamed-GtkWidgetAccessible-3
labelled-by: Hue:
state: editable enabled focusable horizontal sensitive showing single-line visible
toolkit: gtk
@@ -834,7 +834,7 @@ window1
minimum increment: 1.000000
Hue:
"label"
parent: unnamed-GtkContainerAccessible-12
parent: unnamed-GtkContainerAccessible-11
index: 17
name: Hue:
label-for: 0
@@ -872,9 +872,9 @@ window1
variant: <omitted>
weight: <omitted>
wrap-mode: word
unnamed-GtkContainerAccessible-15
unnamed-GtkContainerAccessible-14
"filler"
parent: unnamed-GtkContainerAccessible-11
parent: unnamed-GtkContainerAccessible-10
index: 1
state: enabled sensitive vertical
toolkit: gtk
@@ -883,10 +883,10 @@ window1
alpha: 1
Palette:
"label"
parent: unnamed-GtkContainerAccessible-15
parent: unnamed-GtkContainerAccessible-14
index: 0
name: Palette:
label-for: unnamed-GtkWidgetAccessible-16
label-for: unnamed-GtkWidgetAccessible-15
state: enabled multi-line sensitive visible
toolkit: gtk
<AtkComponent>
@@ -921,27 +921,27 @@ window1
variant: <omitted>
weight: <omitted>
wrap-mode: word
unnamed-GtkContainerAccessible-17
unnamed-GtkContainerAccessible-16
"panel"
parent: unnamed-GtkContainerAccessible-15
parent: unnamed-GtkContainerAccessible-14
index: 1
state: enabled horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkFrameAccessible-18
unnamed-GtkFrameAccessible-17
"panel"
parent: unnamed-GtkContainerAccessible-17
parent: unnamed-GtkContainerAccessible-16
index: 0
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-19
unnamed-GtkWidgetAccessible-18
"unknown"
parent: unnamed-GtkFrameAccessible-18
parent: unnamed-GtkFrameAccessible-17
index: 0
description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
state: enabled focusable sensitive visible
@@ -949,18 +949,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkFrameAccessible-20
unnamed-GtkFrameAccessible-19
"panel"
parent: unnamed-GtkContainerAccessible-17
parent: unnamed-GtkContainerAccessible-16
index: 1
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-21
unnamed-GtkWidgetAccessible-20
"unknown"
parent: unnamed-GtkFrameAccessible-20
parent: unnamed-GtkFrameAccessible-19
index: 0
description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
state: enabled focusable sensitive visible
@@ -968,18 +968,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkFrameAccessible-22
unnamed-GtkFrameAccessible-21
"panel"
parent: unnamed-GtkContainerAccessible-17
parent: unnamed-GtkContainerAccessible-16
index: 2
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-23
unnamed-GtkWidgetAccessible-22
"unknown"
parent: unnamed-GtkFrameAccessible-22
parent: unnamed-GtkFrameAccessible-21
index: 0
description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
state: enabled focusable sensitive visible
@@ -987,18 +987,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkFrameAccessible-24
unnamed-GtkFrameAccessible-23
"panel"
parent: unnamed-GtkContainerAccessible-17
parent: unnamed-GtkContainerAccessible-16
index: 3
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-25
unnamed-GtkWidgetAccessible-24
"unknown"
parent: unnamed-GtkFrameAccessible-24
parent: unnamed-GtkFrameAccessible-23
index: 0
description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
state: enabled focusable sensitive visible
@@ -1006,18 +1006,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkFrameAccessible-26
unnamed-GtkFrameAccessible-25
"panel"
parent: unnamed-GtkContainerAccessible-17
parent: unnamed-GtkContainerAccessible-16
index: 4
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-27
unnamed-GtkWidgetAccessible-26
"unknown"
parent: unnamed-GtkFrameAccessible-26
parent: unnamed-GtkFrameAccessible-25
index: 0
description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
state: enabled focusable sensitive visible
@@ -1025,18 +1025,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkFrameAccessible-28
unnamed-GtkFrameAccessible-27
"panel"
parent: unnamed-GtkContainerAccessible-17
parent: unnamed-GtkContainerAccessible-16
index: 5
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-29
unnamed-GtkWidgetAccessible-28
"unknown"
parent: unnamed-GtkFrameAccessible-28
parent: unnamed-GtkFrameAccessible-27
index: 0
description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
state: enabled focusable sensitive visible
@@ -1044,18 +1044,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkFrameAccessible-30
unnamed-GtkFrameAccessible-29
"panel"
parent: unnamed-GtkContainerAccessible-17
parent: unnamed-GtkContainerAccessible-16
index: 6
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-31
unnamed-GtkWidgetAccessible-30
"unknown"
parent: unnamed-GtkFrameAccessible-30
parent: unnamed-GtkFrameAccessible-29
index: 0
description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
state: enabled focusable sensitive visible
@@ -1063,18 +1063,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkFrameAccessible-32
unnamed-GtkFrameAccessible-31
"panel"
parent: unnamed-GtkContainerAccessible-17
parent: unnamed-GtkContainerAccessible-16
index: 7
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-33
unnamed-GtkWidgetAccessible-32
"unknown"
parent: unnamed-GtkFrameAccessible-32
parent: unnamed-GtkFrameAccessible-31
index: 0
description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
state: enabled focusable sensitive visible
@@ -1082,18 +1082,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkFrameAccessible-34
unnamed-GtkFrameAccessible-33
"panel"
parent: unnamed-GtkContainerAccessible-17
parent: unnamed-GtkContainerAccessible-16
index: 8
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-35
unnamed-GtkWidgetAccessible-34
"unknown"
parent: unnamed-GtkFrameAccessible-34
parent: unnamed-GtkFrameAccessible-33
index: 0
description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
state: enabled focusable sensitive visible
@@ -1101,18 +1101,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkFrameAccessible-36
unnamed-GtkFrameAccessible-35
"panel"
parent: unnamed-GtkContainerAccessible-17
parent: unnamed-GtkContainerAccessible-16
index: 9
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-37
unnamed-GtkWidgetAccessible-36
"unknown"
parent: unnamed-GtkFrameAccessible-36
parent: unnamed-GtkFrameAccessible-35
index: 0
description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
state: enabled focusable sensitive visible
@@ -1120,18 +1120,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkFrameAccessible-38
unnamed-GtkFrameAccessible-37
"panel"
parent: unnamed-GtkContainerAccessible-17
parent: unnamed-GtkContainerAccessible-16
index: 10
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-39
unnamed-GtkWidgetAccessible-38
"unknown"
parent: unnamed-GtkFrameAccessible-38
parent: unnamed-GtkFrameAccessible-37
index: 0
description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
state: enabled focusable sensitive visible
@@ -1139,18 +1139,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkFrameAccessible-40
unnamed-GtkFrameAccessible-39
"panel"
parent: unnamed-GtkContainerAccessible-17
parent: unnamed-GtkContainerAccessible-16
index: 11
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-41
unnamed-GtkWidgetAccessible-40
"unknown"
parent: unnamed-GtkFrameAccessible-40
parent: unnamed-GtkFrameAccessible-39
index: 0
description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
state: enabled focusable sensitive visible
@@ -1158,18 +1158,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkFrameAccessible-42
unnamed-GtkFrameAccessible-41
"panel"
parent: unnamed-GtkContainerAccessible-17
parent: unnamed-GtkContainerAccessible-16
index: 12
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-43
unnamed-GtkWidgetAccessible-42
"unknown"
parent: unnamed-GtkFrameAccessible-42
parent: unnamed-GtkFrameAccessible-41
index: 0
description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
state: enabled focusable sensitive visible
@@ -1177,18 +1177,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkFrameAccessible-44
unnamed-GtkFrameAccessible-43
"panel"
parent: unnamed-GtkContainerAccessible-17
parent: unnamed-GtkContainerAccessible-16
index: 13
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-45
unnamed-GtkWidgetAccessible-44
"unknown"
parent: unnamed-GtkFrameAccessible-44
parent: unnamed-GtkFrameAccessible-43
index: 0
description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
state: enabled focusable sensitive visible
@@ -1196,18 +1196,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkFrameAccessible-46
unnamed-GtkFrameAccessible-45
"panel"
parent: unnamed-GtkContainerAccessible-17
parent: unnamed-GtkContainerAccessible-16
index: 14
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-47
unnamed-GtkWidgetAccessible-46
"unknown"
parent: unnamed-GtkFrameAccessible-46
parent: unnamed-GtkFrameAccessible-45
index: 0
description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
state: enabled focusable sensitive visible
@@ -1215,18 +1215,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkFrameAccessible-48
unnamed-GtkFrameAccessible-47
"panel"
parent: unnamed-GtkContainerAccessible-17
parent: unnamed-GtkContainerAccessible-16
index: 15
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-49
unnamed-GtkWidgetAccessible-48
"unknown"
parent: unnamed-GtkFrameAccessible-48
parent: unnamed-GtkFrameAccessible-47
index: 0
description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
state: enabled focusable sensitive visible
@@ -1234,18 +1234,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkFrameAccessible-50
unnamed-GtkFrameAccessible-49
"panel"
parent: unnamed-GtkContainerAccessible-17
parent: unnamed-GtkContainerAccessible-16
index: 16
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-51
unnamed-GtkWidgetAccessible-50
"unknown"
parent: unnamed-GtkFrameAccessible-50
parent: unnamed-GtkFrameAccessible-49
index: 0
description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
state: enabled focusable sensitive visible
@@ -1253,18 +1253,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkFrameAccessible-52
unnamed-GtkFrameAccessible-51
"panel"
parent: unnamed-GtkContainerAccessible-17
parent: unnamed-GtkContainerAccessible-16
index: 17
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-53
unnamed-GtkWidgetAccessible-52
"unknown"
parent: unnamed-GtkFrameAccessible-52
parent: unnamed-GtkFrameAccessible-51
index: 0
description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
state: enabled focusable sensitive visible
@@ -1272,18 +1272,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkFrameAccessible-54
unnamed-GtkFrameAccessible-53
"panel"
parent: unnamed-GtkContainerAccessible-17
parent: unnamed-GtkContainerAccessible-16
index: 18
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-55
unnamed-GtkWidgetAccessible-54
"unknown"
parent: unnamed-GtkFrameAccessible-54
parent: unnamed-GtkFrameAccessible-53
index: 0
description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
state: enabled focusable sensitive visible
@@ -1291,18 +1291,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkFrameAccessible-56
unnamed-GtkFrameAccessible-55
"panel"
parent: unnamed-GtkContainerAccessible-17
parent: unnamed-GtkContainerAccessible-16
index: 19
state: enabled sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkWidgetAccessible-16
unnamed-GtkWidgetAccessible-15
"unknown"
parent: unnamed-GtkFrameAccessible-56
parent: unnamed-GtkFrameAccessible-55
index: 0
description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
labelled-by: Palette:
@@ -1311,18 +1311,18 @@ window1
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkContainerAccessible-57
action_area
"filler"
parent: unnamed-GtkContainerAccessible-0
parent: vbox
index: 1
state: enabled horizontal sensitive showing visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
unnamed-GtkButtonAccessible-58
unnamed-GtkButtonAccessible-56
"push button"
parent: unnamed-GtkContainerAccessible-57
parent: action_area
index: 0
name: Help
state: enabled focusable sensitive
@@ -1337,9 +1337,9 @@ window1
action 0 name: click
action 0 description: Clicks the button
action 0 keybinding: <Alt>h
unnamed-GtkButtonAccessible-59
unnamed-GtkButtonAccessible-57
"push button"
parent: unnamed-GtkContainerAccessible-57
parent: action_area
index: 1
name: Select
state: enabled focusable sensitive showing visible default
@@ -1354,9 +1354,9 @@ window1
action 0 name: click
action 0 description: Clicks the button
action 0 keybinding: <Alt>s
unnamed-GtkButtonAccessible-60
unnamed-GtkButtonAccessible-58
"push button"
parent: unnamed-GtkContainerAccessible-57
parent: action_area
index: 2
name: Cancel
state: enabled focusable sensitive showing visible
-4
View File
@@ -69,7 +69,6 @@ window1
action 0 name: press
action 0 description: Presses the combobox
action 0 keybinding: <Alt>c
<AtkSelection>
unnamed-GtkMenuAccessible-0
"menu"
parent: combo1
@@ -92,7 +91,6 @@ window1
<AtkAction>
action 0 name: press
action 0 description: Presses the combobox
<AtkSelection>
unnamed-GtkMenuAccessible-1
"menu"
parent: combo2
@@ -156,7 +154,6 @@ window1
<AtkAction>
action 0 name: press
action 0 description: Presses the combobox
<AtkSelection>
unnamed-GtkMenuAccessible-2
"menu"
parent: combo3
@@ -179,7 +176,6 @@ window1
<AtkAction>
action 0 name: press
action 0 description: Presses the combobox
<AtkSelection>
unnamed-GtkMenuAccessible-3
"menu"
parent: combo4
+1 -1
View File
@@ -64,7 +64,7 @@ window1
variant: <omitted>
weight: <omitted>
wrap-mode: word
unnamed-GtkContainerAccessible-0
action_area
"filler"
parent: bar1
index: 1

Some files were not shown because too many files have changed in this diff Show More