Commit Graph

22830 Commits

Author SHA1 Message Date
c85e32d56e color scale: simplify code a bit
It is not necessary to call gtk_widget_get_accessible repeatedly.
2015-02-18 17:28:08 -05:00
50c848a992 Explicitly set the a11y role of tooltip windows
This seems better than trying to identify the 'tooltipness'
of the window on the other side.

https://bugzilla.gnome.org/show_bug.cgi?id=744683
2015-02-18 17:28:08 -05:00
7624418ddf Drop nonworking code to set a11y roles of tooltips
This code relied on widget names, and we don't set those anymore.
2015-02-18 17:28:07 -05:00
359fc25aad build: Don't use shopt in the build command
shopt command only works in bash, so we should not use it in gtk/Makefile.am.

https://bugzilla.gnome.org/show_bug.cgi?id=743647
2015-02-19 01:27:44 +08:00
3d88899072 gtk: Fix various tiny typos in documentation comments
e.g. Invalid syntax in introspection annotations, typos in object names,
accidentally using a gtk-doc comment for an internal function.
2015-02-18 11:38:37 +00:00
a0a1ea10a8 AppChooserDialog: Fix memleak 2015-02-18 11:38:29 +01:00
5a907cc094 scrolledwindow: Ensure indicator windows are created at the right place
At the time of creating the indicator window, the scrollbar allocation is
poked and reused as the initial window dimensions. This usually happens
on two circumstances, either initially (so a ::size-allocate is emitted,
relocating the windows in the right places), or post-initialization when
calling set_overlay_scrolling() (so the scrollbars already have a valid
size allocation)

However, if the scrolledwindow is unrealized, and later re-realized again,
the scrollbars will already have a valid allocation, although 0,0 based
due to being contained in the previous indicator window. This comes out
wrong then, and the indicator window is given 0,0 based coordinates too.

Fix this by refactoring the scrollbar allocation code out of size_allocate,
and also use that given size at the time of creating the indicator windows,
this will provide the right widget-relative allocation anytime.
2015-02-17 16:32:36 +01:00
c473afbdc9 scrolledwindow: Fully reset indicators' state on unrealize
This avoids timers to run after realize(), and inconsistent initial states
if the scrolledwindow is just realized again.
2015-02-17 16:32:36 +01:00
b3043e429b Avoid a crash in the inspector under wayland
The Wayland-specific popover code in GtkWindow was not doing the
right thing with the separate display connection we use for the
inspector.
2015-02-17 09:37:18 -05:00
0a4879b9ac glarea: Better error handling
Currently, GtkGLArea will leak GError instances set during the context
creation, if an error is set.

If any error is set post-context creation, it should be displayed even
in the case a GL context exists; for instance, we can use the error
display facility for shader compilation errors.
2015-02-17 10:21:41 +00:00
da559c08f9 switch: Have a priv varibale in the constructor 2015-02-16 23:57:04 +01:00
e1081bc471 switch: Change handle_x to handle_pos
Make that variable go from 0.0 to 1.0 where 0.0 means inactive (slider
is on the left) and 1.0 means active (slider is on the right).

The math is simpler that way and most importantly the value is
independent of size.
2015-02-16 23:57:04 +01:00
86a41b108e switch: Get rid of offset member variable
We can compute it on-demand whereever we need it.
2015-02-16 23:57:04 +01:00
1b171e812e switch: Remove unused variables from private struct 2015-02-16 23:57:03 +01:00
295b8aab0c css: Implement animations for font-weight property 2015-02-16 23:57:03 +01:00
0c4a42e629 css: Implement "bolder" and "lighter" font weights 2015-02-16 23:57:03 +01:00
0d57d21192 Fix a misleading condition
gcc5 rightfully complains about this condition being unclear.
2015-02-15 22:00:49 -05:00
f8961facb2 Improve two strings
Make two property blurbs better.

https://bugzilla.gnome.org/show_bug.cgi?id=744574
2015-02-15 19:55:54 -05:00
b187773053 Add style classes to the title buttons
This will let themes treat close/min/max buttons differently,
if they so desire.

https://bugzilla.gnome.org/show_bug.cgi?id=744400
2015-02-15 13:03:29 -05:00
5a6264ef5d docs: Fix "shadres" → "shaders" typo
https://bugzilla.gnome.org/show_bug.cgi?id=744394
2015-02-15 11:23:30 +00:00
bb53f893e2 stack: check for widget before calling is_ancestor()
We can hit this path during the destruction case, where widget has
been released.

This fixes a lot of superfluous error messages on console.
2015-02-14 18:11:54 -08:00
b3abfaf9ee GtkSearchEngine: Add debug spew
This lets us find out which search engine implementation is
in use.
2015-02-14 01:03:38 -05:00
ff87c6516b file chooser: Allow to limit search
Add a button to allow restricting search to the current
folder (and subdirectories). This makes the search more
useful, and makes the file chooser more similar to
nautilus.
2015-02-14 01:03:38 -05:00
2c5ea0dd45 file chooser: Add a location column for search
In search, we show files from differnt locations, and it makes
sense to show where they come from. This makes the file chooser
more similar to nautilus, too.
2015-02-14 01:03:38 -05:00
61012f3efe file chooser: Don't open folders unexpectedly
Folders that show up among search results were unexpectedly
returned even for GTK_FILE_CHOOSER_ACTION_OPEN. Change things
around so that we switch to the folder instead, which is the
behavior we had in GTK+ 2.x.

https://bugzilla.gnome.org/show_bug.cgi?id=744204
2015-02-14 01:03:38 -05:00
a34a0224e4 gtkwindow: Don't set the background if the window is app-paintable
This fixes transparent DND windows.
2015-02-13 18:22:34 -08:00
f3110e4103 Rename GtkSidebar to GtkStackSidebar
GtkSidebar is too generic and doesn't fully convey what the widget does.

https://bugzilla.gnome.org/show_bug.cgi?id=744094
2015-02-13 18:01:56 +01:00
ac497c6e8f csd: Always raise on primary titlebar click
This matches more closely what typical window managers do.
Pointed out in
https://bugzilla.redhat.com/show_bug.cgi?id=1158472
2015-02-13 08:51:28 -05:00
eeb7bff0bb Forgotten file 2015-02-13 08:51:28 -05:00
8d7a235a04 notebook: Add api to complete tab dnd from the outside
This is necessary to avoid unwanted drag cancel animations,
now that GtkNotebook is careful about cancelling a drag
when the dragged tab disappears unexpectedly.
2015-02-12 17:33:10 -05:00
d066e7541e Remove GdkGLProfile
The existence of OpenGL implementations that do not provide the full
core profile compatibility because of reasons beyond the technical, like
llvmpipe not implementing floating point buffers, makes the existence of
GdkGLProfile and documenting the fact that we use core profiles a bit
harder.

Since we do not have any existing profile except the default, we can
remove the GdkGLProfile and its related API from GDK and GTK+, and sweep
the whole thing under the carpet, while we wait for an extension that
lets us ask for the most compatible profile possible.

https://bugzilla.gnome.org/show_bug.cgi?id=744407
2015-02-12 17:51:31 +00:00
c372f95a41 glarea: Add accessors for the required GL version
Specifying the version of OpenGL is enough of a common operation that it
should not require overriding the creation of the GdkGLContext.
2015-02-12 13:25:12 +00:00
ec112a772b glarea: Update documentation
Drop the fixed pipeline example code.

https://bugzilla.gnome.org/show_bug.cgi?id=744394
2015-02-12 13:19:21 +00:00
59679daeae glarea: Clean up the header 2015-02-12 12:44:01 +00:00
022724aa69 gl: Drop profile for gdk_window_create_gl_context()
Now that we have a two-stages GL context creation sequence, we can move
the profile to a pre-realize option, like the debug and forward
compatibility bits, or the GL version to use.
2015-02-12 12:34:28 +00:00
015bf99816 gtk: x: fix compilation without x11 backend
https://bugzilla.gnome.org/show_bug.cgi?id=744148
2015-02-12 10:55:52 +00:00
973060deb5 main: Make gtk_get_option_group() available to bindings
Now that GOptionGroup is registered as a boxed type [1], don't skip it
in gobject-introspection.

[1]: See https://bugzilla.gnome.org/show_bug.cgi?id=743349

https://bugzilla.gnome.org/show_bug.cgi?id=743350
2015-02-12 11:53:26 +01:00
d825249b42 gtklistbox: add bind_model()
gtk_list_box_bind_model() binds a GListModel to a GtkListBox.

This is a first step towards having GListModel support in Gtk. It's not
useful for large models, because GtkListBox always creates all widgets
for all rows.
2015-02-12 11:22:07 +01:00
9141eeb60e GtkListBoxRow: Update the listbox's cursor row when focusing
https://bugzilla.gnome.org/show_bug.cgi?id=708320
2015-02-12 09:58:29 +01:00
b876e036b2 file chooser: Allow opening folders in the file manager
This has been suggested in
https://bugzilla.gnome.org/show_bug.cgi?id=325150#c2
2015-02-11 23:34:04 -05:00
278fa902e2 Revert "image: Optimize non-resize changes"
This reverts commit 6276b9cda0.

This change was causing problems in gnome-mines. Revert it
until we can figure out what exactly is going wrong there.
See https://bugzilla.redhat.com/show_bug.cgi?id=1190887
2015-02-11 12:07:32 -05:00
b763bb0594 stylecontext: Don't use cache when unsaved
Fixes image-load-from-file reftest
2015-02-10 23:49:40 +01:00
4dee1646a1 Fix annotations
The function gtk_label_set_attributes() is also used to
unset attributes, by passing %NULL. Reflect that in the
argument annotations.
2015-02-10 06:59:01 -05:00
5a3b28aaf1 glarea: Do not use extension API
We are using GL contexts with Core GL profiles, so we need to use the
proper API, not the one provided by extensions.

https://bugzilla.gnome.org/show_bug.cgi?id=741946
2015-02-09 19:10:30 +00:00
22e6f37c9c GL: Split GL context creation in two phases
One of the major requests by OpenGL users has been the ability to
specify settings when creating a GL context, like the version to use
or whether the debug support should be enabled.

We have a couple of requirements in terms of API:

 • avoid, if at all possible, the "C arrays of integers with
   attribute, value pairs", which are hard to write and hard
   to bind in non-C languages.
 • allow failing in a recoverable way.
 • do not make the GL context creation API a mess of arguments.

Looking at prior art, it seems that a common pattern is to split the
construction phase in two:

 • a first phase that creates a GL context wrapper object and
   does preliminary checks on the environment.
 • a second phase that creates the backend-specific GL object.

We adopted a similar pattern:

 • gdk_window_create_gl_context() creates a GdkGLContext
 • gdk_gl_context_realize() creates the underlying resources

Calling gdk_gl_context_make_current() also realizes the context, so
simple GL users do not need to care. Advanced users will want to
call gdk_window_create_gl_context(), set up the optional requirements,
and then call gdk_gl_context_realize(). If either of these two steps
fails, it's possible to recover by changing the requirements, or simply
creating a new GdkGLContext instance.

https://bugzilla.gnome.org/show_bug.cgi?id=741946
2015-02-09 19:10:04 +00:00
1116914ea0 css: Move scale to GtkStyleProviderPrivate
This way, we can remove it as a separate argument from
gtk_css_value_compute() and allow computation to only depend on one
thing: the style provider.
2015-02-06 11:26:31 +01:00
808bfe0a98 settings: Provide a default style cascade per scale
This guarantees we only create 1 extra style cascade in total for hidpi
and not one per style context.

Style cascades are now nested like this:

GtkSettings root cascade (scale == 1)
 |
 +-- GtkSettings per scale cascade (for any scale, no custom providers)
 |
 +-- GtkStyleContext custom cascade (for any scale, custom providers)

This requires a bunch of care when changing cascade-related properties
inside GtkStyleContext, so that it ends up with a properly setup
cascade, but I think I got those cases right.

The only thing we don't do yet is reverting to a GtkSettings cascade
when the last custom provider is removed from a custom cascade.
2015-02-06 11:26:31 +01:00
9209c4ea41 stylecontext: Store the scale value in the cascade
This is in preparation for the next commits.
2015-02-06 11:26:31 +01:00
93c3b90f6a treeview: Fix copy/paste bug
Introduced in 7eecb16404
2015-02-06 03:13:59 +01:00
89f635fee1 css: Add -gtk-dpi CSS property hack
This property is necessary to ensure widgets automatically update after
the text scale factor is changed desktop-wide.

And if I'm already doing a property like this, I can make it
overridable. So now you can override the dpi per-widget with CSS like
GtkSwitch {
  -gtk-dpi: 48;
}
if you want to debug things.

Long-term, we want to get rid of this property and insist on dpi being
96 everywhere and people can change the font size to get larger fonts.
2015-02-05 18:57:29 +01:00