Commit Graph

15916 Commits

Author SHA1 Message Date
Benjamin Otte
ccabccc42f treeview: Send changed signal directly to a11y code
No more signal handler is needed, therefore the code can also get rid of
tracking the treemodel. And we use a faster approach for iterating the
changed cellrenderers: We just iterate all columns instead of over all
cell accessibles, as that number is likely quite a bit smaller.
2011-12-16 04:53:15 +01:00
Benjamin Otte
f5621a3a8e treeview: Emit cursor-changed signal when new model is set 2011-12-16 04:53:15 +01:00
Benjamin Otte
c9c7e91db9 a11y: Improve treeview's add/remove_selection() 2011-12-16 04:53:15 +01:00
Benjamin Otte
dc8f5effd4 a11y: Improve get_selected_rows() 2011-12-16 04:53:15 +01:00
Benjamin Otte
20b56689c5 a11y: Improve table_is_row_selected() 2011-12-16 04:53:15 +01:00
Benjamin Otte
3112679a5e treeview: Signal selection changes to the accessible
And another signal gone.
2011-12-16 04:53:15 +01:00
Benjamin Otte
1a3226e2f7 a11y: Emit children-changed properly for treeviews
Fixes the patch reverted in b7e74ef95f1d9cd851fb81a124beca0ca11dad00
properly.

https://bugzilla.gnome.org/show_bug.cgi?id=548782
2011-12-16 04:53:15 +01:00
Benjamin Otte
0005d820c7 treeview: Remove unnecessary accessible_expanded()
Instead, just call remove_state().
2011-12-16 04:53:15 +01:00
Benjamin Otte
c7b82c2cea treeview: Add add() function to accessible
... and use that to emit the insertion signals.
2011-12-16 04:53:14 +01:00
Benjamin Otte
82a9f6faa0 treeview: Set expandable flag from treeview
... instead of trying to update it manually.
2011-12-16 04:53:14 +01:00
Benjamin Otte
9e9533fc88 a11y: Redo cell accessible action handling
Multiple changes:
- actions are now available unconditionally, but only work in the right
  state. This mirrors other actions.
- instead of adding actions manually, they invoke the action on the
  GtkCellAccessibleParent interface.

Tests have been updated to reflect the changes
2011-12-16 04:53:14 +01:00
Benjamin Otte
f840efae96 a11y: Remove "toggle" action from cell renderers
This is identical to "edit" (even though that name is kinda confusing).
2011-12-16 04:53:14 +01:00
Benjamin Otte
adf183b71f treeview: Set EXPANDED state directly on a11y elements 2011-12-16 04:53:14 +01:00
Benjamin Otte
6fa72300be treeview: Deprecate gtk_tree_view_set_destroy_count_func()
The accessibility code doesn't need it anymore.
2011-12-16 04:53:14 +01:00
Benjamin Otte
ab9c2c2de2 a11y: Remove destroy_count_func usage
It's not needed anymore.
2011-12-16 04:53:14 +01:00
Benjamin Otte
8ca5192d6d a11y: Emit row-deleted signal when rows get deleted
Instead of in the old callbacks.
2011-12-16 04:53:14 +01:00
Benjamin Otte
25445837ca a11y: Revert 22a47c3dbd
The fix is wrong on multiple levels. I'll add a proper fix soon.

https://bugzilla.gnome.org/show_bug.cgi?id=548782
2011-12-16 04:53:14 +01:00
Benjamin Otte
95dc248790 treeview: Don't use signals in a11y row expansion
Instead, add a function and call it directly.
2011-12-16 04:53:14 +01:00
Benjamin Otte
d9b71702dc a11y: Add _gtk_tree_view_accessible_add_state()
... and _gtk_tree_view_accessible_remove_state(). They should be called
by gtktreeview.c to notify about changes of state for a row.
2011-12-16 04:53:13 +01:00
Benjamin Otte
3badf48d2e a11y: Split out function
I want to use that function when sending notifications. See next
commits.
2011-12-16 04:53:13 +01:00
Benjamin Otte
ff80ae16d9 a11y: Readd FOCUSABLE state
The state was lost in commit 08d86fabc4.

Also order the states that are always set alphabetically.
2011-12-16 04:53:13 +01:00
Benjamin Otte
0ef6771bcc a11y: Remove old notify about showing/visible
As cells are always visible and showing, there is no need to do complex
notification mechanisms anymore.
2011-12-16 04:53:13 +01:00
Benjamin Otte
7f42a9465a a11y: Add _gtk_cell_accessible_state_changed()
It's supposed to replace the old state_set calls.
2011-12-16 04:53:13 +01:00
Benjamin Otte
90f04b56a7 a11y: Split out renderer<->atk state matching
We now keep a state map. This makes adding new states easier, and
doesn't introduce bugs with state change emissions.
2011-12-16 04:53:13 +01:00
Benjamin Otte
acfb3b3d88 a11y: Don't duplicate information anymore
We do provide the expandable and expanded information via
GtkCellRendererState now so there is no need to use extra flags.
2011-12-16 04:53:13 +01:00
Benjamin Otte
bb029420fd a11y: Set new treeview flags 2011-12-16 04:53:13 +01:00
Benjamin Otte
175043bd8d treeview: Set the new flags when rendering the cell 2011-12-16 04:53:13 +01:00
Benjamin Otte
b6aa011c43 cellrenderer: Add EXPANDED and EXPANDABLE states
These make more sense as flags than they do as properties of the cell
renderer.
2011-12-16 04:53:13 +01:00
Benjamin Otte
953b4aedf1 tests: Add a test for latest commit 2011-12-16 04:53:05 +01:00
Benjamin Otte
94f00eb04d widget: Don't change sensitive state with insensitve parent
This way child.set_sensitive(True) with an insensitive parent doesn't
cause child to become sensitive.
2011-12-16 04:50:11 +01:00
Benjamin Otte
1377ff08c0 fontchooserwidget: Handle dpi < 0
Just use 96.0
2011-12-16 04:50:11 +01:00
Matthias Clasen
14f1811158 Add new symbols 2011-12-15 22:40:01 -05:00
Cosimo Cecchi
f0714338b3 iconhelper: treat the empty string as a NULL icon name
Treat the empty string as if it was a NULL icon name instead of
rendering GTK_STOCK_MISSING_IMAGE.
This used to be the previous behavior of GtkCellRendererPixbuf and
applications might still rely on it.
2011-12-15 20:01:35 +01:00
Cosimo Cecchi
798413151f cellrendererpix: save the icon size locally instead of in the helper
We need to save the icon size locally for GtkCellRendererPixbuf, since
its properties are set again every time it's drawn (resetting the icon
size on the helper by means of _gtk_icon_helper_clear() each time).
2011-12-15 19:59:24 +01:00
Cosimo Cecchi
69a5b3af94 menuitem: cleanup arrow-spacing fetch code
Refactor get_arrow_size() to return the spacing as well, since basically
we always need both.
2011-12-15 18:52:30 +01:00
Cosimo Cecchi
05e62e0251 menuitem: share code between HFW and non-HFW height requests
The code is very similar; having two slightly different code paths is
bad and can lead to bugs. Refactor the code to use the same height
request function.
2011-12-15 18:52:30 +01:00
Cosimo Cecchi
4d76b10ce5 menuitem: properly respect padding when drawing the separators
Use the padding when calculating the draw coordinates of the separator.

https://bugzilla.gnome.org/show_bug.cgi?id=666242
2011-12-15 18:52:30 +01:00
Cosimo Cecchi
713df0c72b menuitem: force odd height if we're not using wide separators
So that the 1px line can receive the same amount of space above and
below.

https://bugzilla.gnome.org/show_bug.cgi?id=666242
2011-12-15 18:52:30 +01:00
Cosimo Cecchi
20e94c1275 menuitem: don't request twice the padding for separator menu items
Padding was requested twice for separator menu items.

https://bugzilla.gnome.org/show_bug.cgi?id=666242
2011-12-15 18:52:30 +01:00
Florian Müllner
4f8f8fe828 window: Add hide-titlebar-when-maximized property
For maximized windows, titlebars cannot be used to reposition or
scale the window, so if an application does not use it to convey
useful information (other than the application name), the screen
space occupied by titlebars could be put to better use.
Add a new window property which requests from the window manager
to hide titlebars when windows are maximized to account for this.

https://bugzilla.gnome.org/show_bug.cgi?id=665616
2011-12-15 16:31:56 +01:00
Cosimo Cecchi
cfa0339559 scale: remove unused variable 2011-12-15 12:16:09 +01:00
Rui Matos
1235dc320b widget: Synthesize crossing only if sensitivity changed while propagating state 2011-12-14 17:03:44 +00:00
Andrea Cimitan
40423df234 Add has-origin property for GtkScale
If the scale has an origin (it will have one by default), GtkRange will
render the two sides before/after the current value with different style
classes, making it possible for themes to use different colors and
properties for the two areas.
This was possible in GTK 2 with style details, but got lost during the
road to 3.0.

https://bugzilla.gnome.org/show_bug.cgi?id=665140
2011-12-14 17:16:09 +01:00
Alexander Larsson
10b5ec20f2 Fix set_focus_child handling during focus changes
In many cases we used to set focus_child to NULL all the way up
to the top and then to the right value, even if there was
a common ancestor, meaning these see a temporary NULL value for
focus_child. Only when the new focus widgets direct parent was
in the previous ancestor list did we stop early.

This fixes that by always stopping propagation when reaching
the common ancestor.
2011-12-14 00:26:40 +01:00
Claudio Saavedra
064204da9b GtkFrame: Fix a casting in the compute_child_allocation() method
The casting used to calculate the child allocation is confusing MAX().
As a result, width and height end up with negative values, which makes no sense.

https://bugzilla.gnome.org/show_bug.cgi?id=666109
2011-12-13 20:26:30 +02:00
Cosimo Cecchi
a7f3a9ff74 themingengine: split a GtkThemingBackground object
Allows easier modification and general sanity of the CSS background
rendering code.
2011-12-12 12:46:52 +01:00
Cosimo Cecchi
1e23a74a95 image: take misc padding into account when calculating x/y draw coords
This fixes the misc-alignment.ui reftest.
2011-12-12 12:30:27 +01:00
Cosimo Cecchi
b215aeacc8 image: add gtk_image_get_preferred_size()
Add a function to query the preferred size of the GtkImage, and use it
in the get_preferred_width/height implementations.
2011-12-12 12:29:21 +01:00
Benjamin Otte
92929b968b treeview: Ensure selection's changed signal
There was a corner case where the changed signal was not emitted.
If rows were built like this:
  1    (not selected)
  + 2  (selected)
  + 3  (not selected)
And row 1 was removed, no signal would be emitted.

I like it when writing tests actually finds bugs that have been around
since 2003 - introduced by 4a03ea2334
actually. :)
2011-12-10 08:00:26 +01:00
Benjamin Otte
d4d2cc14d2 treeview: Don't try to optimize away selection_changed signal
We get certain cases, in particular with SELECTION_MULTIPLE, where we
cannot figure out in advance of real_set_cursor() if the selection will
actually change.
2011-12-10 08:00:26 +01:00
Benjamin Otte
559c3c7da1 treeview: Add a CURSOR_INVALID flag to set_cursor_row()
This is necessary so the code doesn't attempt to do things with the
previous cursor, which currently cause crashes.
2011-12-10 08:00:26 +01:00
Benjamin Otte
d3bccfbb6d treeview: Replace lots of boolean args with flags
I want to add more and 3 boolean args is essentially unreadable code.
2011-12-10 08:00:26 +01:00
Benjamin Otte
4dbedb7481 docs: Update code demo for newer glib 2011-12-10 08:00:26 +01:00
Benjamin Otte
1a2932ba29 treeview: Handle the case where the cursor row gets deleted
Previously, the cursor would just become invalid, which used to
reselect the first row in the treeview later on (without a
cursor-changed signal). This leads to a crash now with the recent
refactorings.

The patch is longer than I'd like it to be, but the situation is kinda
complicated, because we want to make sure to move the cursor to a good
row. It works like this:
1) From the deleted row, search forward for the first row that is not
   going to be deleted and is not a separator.
2) If no such row exists, search backwards for a row that is not a
   separator.
3) If no such node exists, clear the cursor.
2011-12-10 08:00:26 +01:00
Benjamin Otte
e01af5c5c9 treeview: Replace cursor handling by keeping the node
Previously the code used a GtkTreeRowReference, which was (a) less
performant and more importantly (b) hiding errors.
The errors being hidden were the referenced row becoming invalid or
collapsed, because such rows would not be valid cursor rows and it would
be necesary to select a new row and emit a "cursor-changed" signal.

So if a crash bisects down to this commit, it is very likely that the
cursor has not correctly been updated and the cursor row is invalid.
2011-12-10 08:00:26 +01:00
Benjamin Otte
78aad2d35c treeview: Use _gtk_rbtree_contains() in a11y code 2011-12-10 08:00:25 +01:00
Benjamin Otte
710a8435cc rbtree: Add _gtk_rbtree_contains()
It's useful in a bunch of places, so split it out
2011-12-10 08:00:25 +01:00
Matthias Clasen
9bf17a95e5 Revert 3fd7dbc940
Calling gdk_keymap_add_virtual_modifiers causes _all_ virtual
modifiers to be added, which causes problem when they are co-located
on the same real modifier (as Super and Hyper often are). Effectively,
this made it impossible to enter key combinations involving Super,
since they all turn into Super+Hyper.
2011-12-08 12:44:19 -05:00
Timothy Arceri
36effbb307 print to file: fixed lost filename in gui
Stop widget creating an event before updating both directory and
filename values.

https://bugzilla.gnome.org/show_bug.cgi?id=603823
2011-12-07 20:04:38 -05:00
Benjamin Otte
6454c718dd overlay: Properly allocate the child upon addition
This ensures that after addition the child gets assigned the proper
allocation and the child window is properly shown/hidden.
2011-12-08 00:24:28 +01:00
Benjamin Otte
003d80dbea overlay: Move code
Move code for child allocation into the child allocation function. Don't
keep it in the overlay allocation code.

See the next commit for why this is useful.
2011-12-08 00:24:28 +01:00
Benjamin Otte
f34d0d6f7b overlay: Create child window before setting parent
Otherwise, the window will not be used when set_parent() maps the child.
2011-12-08 00:24:28 +01:00
Rui Matos
6ed5918718 progressbar: Set state flags on draw
We were missing setting state flags on the style context before drawing.
2011-12-07 22:42:56 +00:00
Rui Matos
7a6babfd02 widget: Unset window-unfocused in gtk_widget_unparent()
Widgets without a parent aren't inside a toplevel window so we must remove
window-unfocused as it doesn't make sense outside a toplevel.

https://bugzilla.gnome.org/show_bug.cgi?id=661428
2011-12-07 22:41:58 +00:00
Benjamin Otte
807a449f29 treeview: Fix crash when scrolling to end
This broke in a4630d0e7b

https://bugzilla.gnome.org/show_bug.cgi?id=665741
2011-12-07 20:12:12 +01:00
Benjamin Otte
c24742e789 modifierstyle: Fix compile errors
Introduced in 7bd2446801
2011-12-06 18:01:57 +01:00
Alexander Larsson
7bd2446801 Remove broken optimization in style modifier overrides
We used to only set the override color or font if it was different
than the existing value. However, that means you can't change it to
an override that is the same as the default value for the property.

With this fixed you can e.g. override with a color of 0,0,0,0 which
you couldn't before.
2011-12-06 14:12:23 +01:00
Matthias Clasen
d978ed85ae Remove an unused variable 2011-12-05 18:07:41 -05:00
Carlos Garnacho
029a884d9e gtk,notebook: Invalidate the gap side when reordering tabs
This narrow area is invalidated so the gap follows the tab
being reordered.
2011-12-05 21:23:23 +01:00
Alexander Larsson
fd06890354 notebook: Make the tab reordering dnd window transparent 2011-12-05 21:15:06 +01:00
Cosimo Cecchi
392cdff697 statusicon: fix the build on !X11
Uninevitable fallout from my last patch to GtkStatusIcon. Thanks to Rob
Bradford for testing this.
2011-12-05 13:22:20 -05:00
Benjamin Otte
4259a27cf5 widget: Update Pango context on state change
The layout depends on the state flags, so it must be updated when they
change.
2011-12-05 18:27:05 +01:00
Benjamin Otte
c3cccf586c label: Clear layout on state change
Selected or active text might be rendered differently.
2011-12-05 18:27:05 +01:00
Benjamin Otte
5ac6950dd6 label: Move callback to new stuff
We want to react to state flags changing, not to the (deprecated) state
type changing.
2011-12-05 18:27:05 +01:00
Cosimo Cecchi
d80ff7b5f1 stylecontext: always add the ARROW style class when rendering an arrow
When gtk_render_arrow() is called, always add an ARROW style class to
the GtkStyleContext before rendering, so themes can specify a different
color for it.

https://bugzilla.gnome.org/show_bug.cgi?id=665420
2011-12-05 09:37:21 -05:00
Cosimo Cecchi
c538fb8f64 stylecontext: add GTK_STYLE_CLASS_ARROW
For e.g. submenu items arrow in GtkMenuItems.

https://bugzilla.gnome.org/show_bug.cgi?id=665420
2011-12-05 09:30:57 -05:00
Cosimo Cecchi
2e01dc1b7a statusicon: port to GtkIconHelper
Just always render the pixbuf ourselves and set it on the GtkImage in
the X11 case.
Code for other backends was already rendering the pixbuf manually before
translating it into a native type, so this greatly simplifies the code.

https://bugzilla.gnome.org/show_bug.cgi?id=665409
2011-12-05 09:09:43 -05:00
Alexander Larsson
c47ef89aca Merge branch 'transparent-windows' 2011-12-05 14:24:28 +01:00
Alexander Larsson
93c086ec80 Make window handle transparent
Instead of painting the window background on the grip_window we now
only paint it on the GtkWindow->window, and we make the grip_window
have a transparent background.

We can't really make transparent window handle background optional
via css atm, because the handle color is actually based on the
background color, so if that is set to transparent we won't draw
anything.
2011-12-05 12:51:55 +01:00
Cosimo Cecchi
2bf765ab49 entry: avoid a mismatched cairo_save/restore
Leftover from GtkIconHelper migration.
2011-12-04 19:58:28 -05:00
Paolo Borelli
5a471fefdb Remove unused alignment from GtkTooltip. 2011-12-04 19:20:23 +01:00
Paolo Borelli
7c779a0bee Plug tiny leak in the css parser 2011-12-03 17:52:24 +01:00
Claudio Saavedra
f9c24e8f03 GtkIconView: fix a memory corruption in the drag-n-drop code
You shall free with g_slice_free() what you allocate with
g_slice_new().

https://bugzilla.gnome.org/show_bug.cgi?id=665338
2011-12-01 22:56:43 +01:00
Cosimo Cecchi
58b1f24d6d image: use the default icon size if no icon size is provided
If no icon size is provided (e.g. when setting icon-name or stock-id
using the GObject property directly), use the default icon size. This
matches the previous GtkImage behavior.
2011-11-30 19:47:52 -05:00
Cosimo Cecchi
0c68227270 image: minor cleanup 2011-11-30 19:47:52 -05:00
Paolo Borelli
2ef5844bac Introduce gtk_render_insertion_cursor
The new function provides an API that takes the PangoLayout and index
as input params, this way it handles strong and weak cursors internally
factoring out all code duplicated in the widgets that need to render
cursors.

https://bugzilla.gnome.org/show_bug.cgi?id=640317
2011-12-01 01:22:39 +01:00
Paolo Borelli
3c6842222a Use the split-cursor setting for textview cursors
Explicitely check the split-cursor setting when drawing the textview
insertion cursor instead of relying on the cursor_direction set in the
textlayout. This makes the cursor drawin code more uniform with other
widgets in preparation to refactoring the cursor drawing code in a
shared function.

https://bugzilla.gnome.org/show_bug.cgi?id=640317
2011-12-01 01:22:39 +01:00
Paolo Borelli
0bff1af7a2 Rework GtkTextView cursor code.
Move the handling of primary/secondary cursors to gtktextdisplay, which
makes code simpler and more consistent to how GtkLabel and GtkEntry
draw cursors, which is useful in preparation to further refactoring.

https://bugzilla.gnome.org/show_bug.cgi?id=640317
2011-12-01 01:22:39 +01:00
Paolo Borelli
b3f850e6b9 Tiny cleanup.
https://bugzilla.gnome.org/show_bug.cgi?id=640317
2011-12-01 01:22:38 +01:00
Paolo Borelli
f18bbdff53 Remove draw_insertion_cursor in label and entry
Remove the the draw_insertion_cursor wrapper which just converts from
GtkTextDir to PangoDirection

https://bugzilla.gnome.org/show_bug.cgi?id=640317
2011-12-01 01:22:38 +01:00
Cosimo Cecchi
772459979f image: simplify code
We can unconditionally call into the icon helper methods now that we
removed the g_return_val_if_fail() checks.
2011-11-30 19:06:38 -05:00
Cosimo Cecchi
d47e82ffdd entry: simplify code
We can unconditionally call into the icon helper methods now that we
removed the g_return_val_if_fail() checks.
2011-11-30 19:05:34 -05:00
Cosimo Cecchi
864c5610f8 icon-helper: remove useless checks
When we change storage type, we always clear the rest of the object, so
these checks do not add any safety.
2011-11-30 19:04:17 -05:00
Cosimo Cecchi
d300ddc5e4 icon-helper: don't warn out when the icon size is GTK_ICON_SIZE_INVALID
We can call ensure_icon_size() for an empty image; don't warn out in
that case, but just return a zero width.
2011-11-30 18:32:01 -05:00
Cosimo Cecchi
e37c55aa3e icon-helper: don't reset pixel_size when clearing the helper
Don't reset the pixel size when clearing the helper; pixel-size is e.g a
property of GtkImage, which is stable unless explicitly set.
2011-11-30 18:15:05 -05:00
Cosimo Cecchi
5224302a30 entry: always prepare the style context when using it for entry icons
Make sure to always prepare the entry's style context for the entry icon
style when passing it to GtkIconHelper.
2011-11-30 16:39:59 -05:00
Cosimo Cecchi
126651f889 cellrendererpix: make sure to select the default helper as a fallback
If we don't have expander pixbufs, select the default helper to render
the icon, even if the cell is an expander. This mimics what the old code
did.
2011-11-30 16:39:59 -05:00
Cosimo Cecchi
0304cc04d3 cellrendererpix: port to GtkIconHelper 2011-11-30 16:39:59 -05:00
Cosimo Cecchi
a4d6505cb3 entry: port to GtkIconHelper 2011-11-30 16:39:59 -05:00
Cosimo Cecchi
adbfbb7278 dnd: port to GtkIconHelper 2011-11-30 16:39:59 -05:00
Cosimo Cecchi
f085dde830 image: port to GtkIconHelper
Use newly introduced GtkIconHelper to render pixbufs in GtkImage.
2011-11-30 16:39:59 -05:00
Cosimo Cecchi
b5d8d2c4a8 icon-helper: add GtkIconHelper private object
GtkIconHelper is a helper object to easily obtain a pixbuf from
different icon sources (e.g. a GIcon, an icon name, a stock id, ...).

Code is ported from GtkImage, which will be adapted in the next commit.
2011-11-30 16:39:59 -05:00
Stef Walter
d462f86aad GtkCssProvider: don't segfault when CSS file is not found
* Fix null dereference in gtk_css_provider_take_error()
 * And another in gtk_css_provider_emit_error()

https://bugzilla.gnome.org/show_bug.cgi?id=664537
2011-11-30 00:23:07 -05:00
Federico Mena Quintero
830bc4304c [GtkFileChooserDefault] Don't destroy and re-create the filename entry
This is a leftover from the big rework to remove the expanded/collapsed mode
in Save mode.

Signed-off-by: Federico Mena Quintero <federico@gnome.org>
2011-11-29 15:11:56 -06:00
Federico Mena Quintero
463c98a9d7 [GtkPathBar] Remove unused error argument
It used to be that _gtk_path_bar_set_file() would return an error if
it wasn't able to switch to the specified file, but that hasn't been
the case for a long while now, since the file chooser became async.

Signed-off-by: Federico Mena Quintero <federico@gnome.org>
2011-11-29 15:11:54 -06:00
Paolo Borelli
58d247d7ae Avoid shadowing a variable
Move bg_color variable to an inner scope.
2011-11-29 21:28:30 +01:00
Federico Mena Quintero
7fb00c919e [path-bar] Add some comments to explain the async recursion on an I/O callback
Signed-off-by: Federico Mena Quintero <federico@gnome.org>
2011-11-29 14:17:04 -06:00
Federico Mena Quintero
6ce48345ce [path-bar] Only reset the children's styles if the children actually changed
Signed-off-by: Federico Mena Quintero <federico@gnome.org>
2011-11-29 14:17:02 -06:00
Federico Mena Quintero
07eb8d6952 Remove unused argument
Signed-off-by: Federico Mena Quintero <federico@gnome.org>
2011-11-29 14:17:00 -06:00
Benjamin Otte
5317cb1263 filechooserdefault: Don't unref value twice
Double unref was introduced in eb02dacb37

https://bugzilla.gnome.org/show_bug.cgi?id=646461
https://bugzilla.gnome.org/show_bug.cgi?id=664137
2011-11-29 20:44:57 +01:00
Benjamin Otte
7d3109a855 treeview: Properly change cursor when row is collapsed
Previously, when the cursor was a descendant of the collapsed row,
the cursor path was set to the collapsed row, but this was not
communicated via cursor-changed events.
2011-11-29 20:44:57 +01:00
Benjamin Otte
bbf00265fc treeview: Reorder code a bit
This is mainly in preparation for the next commit, but also to reorder
the code to
1) prepare modification of tree
2) modify tree
3) emit signals
2011-11-29 20:44:57 +01:00
Benjamin Otte
c070e7acf5 treeview: Simplify code
Since the changes in commit 2b3de3dd this simplification is possible.
2011-11-29 20:44:57 +01:00
Benjamin Otte
806dca0677 treeview: Rename function
_gtk_tree_view_find_path() was not a name that not really described what
the function does. And I kept forgetting it. Also, it took the tree view
as an argument and that was completely unnecessary.
2011-11-29 20:44:57 +01:00
Cosimo Cecchi
ae60f00ba4 themingengine: fix a typo 2011-11-29 10:52:03 -05:00
Cosimo Cecchi
41b56d87e7 themingengine: move code to make switch-case more clear
Code is more readable with the default case as the last one in the
switch block.
2011-11-29 10:52:02 -05:00
Cosimo Cecchi
f7d95b5fe3 pathbar: add the linked style class to GtkPathBar 2011-11-28 14:41:48 -05:00
Cosimo Cecchi
6740121fab stylecontext: add GTK_STYLE_CLASS_LINKED
"linked" is a style class for linked areas, such as a box containing
buttons belonging to the same control.
2011-11-28 14:41:48 -05:00
Javier Jardón
f920d968f6 gtk/gtkeditable: Some docs fixes 2011-11-28 15:23:00 +00:00
Cosimo Cecchi
10cfa90817 spinbutton: redesign to use an horizontal layout
Rewrite GtkSpinButton to use a touchscreen friendly horizontal layout.
Other features include:
- support for theming buttons with nth-child
- full support for RTL
- use + and - symbolic icons instead of arrows
- general streamlining and cleanup of a lot of related code

https://bugzilla.gnome.org/show_bug.cgi?id=663359
2011-11-28 09:40:23 -05:00
Alexander Larsson
03b7bb6e29 win32-theme: Make tabs look better 2011-11-28 10:06:38 +01:00
Alexander Larsson
eb44036346 Support border-image in theme_engine_render_frame_gap
This is similar to the normal frame rendering, but has a clip
region applied for the gap.
2011-11-28 10:05:29 +01:00
Alexander Larsson
267b51ec98 win32-theme: Add some margins on GtkScale trought to look like win32 2011-11-28 09:14:13 +01:00
Alexander Larsson
21c7e8cf47 win32-theme: Support custom margins in win32 theme parts 2011-11-28 09:13:54 +01:00
Alexander Larsson
7756f49995 Fix up makefile rules for parallel builds
The gtkwin32css.h generation code used a temporary filename that was also
used by some other files, which is racy. Use a unique one.
2011-11-28 09:12:28 +01:00
Alexander Larsson
7c092be0ce win32-theme: Make syntax for mixing theme parts more regular
This lets us extend the argument list better
2011-11-28 08:58:41 +01:00
Alexander Larsson
6898ba4f76 win32-theme: Make notebook tabs slightly better 2011-11-25 16:43:51 +01:00
Alexander Larsson
3f206dcd83 win32-theme: Fix background colors for new bg drawing 2011-11-25 16:40:25 +01:00
Alexander Larsson
75642d3af2 css: Always draw the bg color under the bg image 2011-11-25 16:14:20 +01:00
Alexander Larsson
8411f1a279 Implement background-clip and background-origin 2011-11-25 16:14:19 +01:00
Alexander Larsson
330fd3b614 Add GtkCssArea enum
This will be used for background-clip and background-origin css properties.
2011-11-25 16:14:19 +01:00
Alexander Larsson
c276f53796 Make computed value of border-width 0 if border-style none
From the css docs at http://www.w3.org/TR/CSS2/box.html:

    8.5.1 Border width: 'border-top-width', 'border-right-width', 'border-bottom-width',
    'border-left-width', and 'border-width'

    Computed value:  	absolute length; '0' if the border style is 'none' or 'hidden'
2011-11-25 15:36:08 +01:00
Alexander Larsson
91dcf4000b css: Convert border style parsing to use enums 2011-11-25 15:36:08 +01:00
Alexander Larsson
d85aabe1e3 Rename GTK_CSS_REPEAT_STYLE_NONE to GTK_CSS_REPEAT_STYLE_STRETCH
This is a private type, and the CSS default value is "stretch", which
is how we were parsing and printing NONE anyway.

With this fix we can use the enum stuff for printing/parsing
2011-11-25 15:36:08 +01:00
Alexander Larsson
2a42fad145 css: Use enum parsing for background repeat style 2011-11-25 15:36:08 +01:00
Alexander Larsson
8fb4b13730 css: Break out enum parse/print helper
We need this to parse non-GValue enums
2011-11-25 15:36:08 +01:00
Alexander Larsson
3e24029415 css: Parse enums with new case-insensitive helper 2011-11-25 15:36:08 +01:00
Alexander Larsson
1a68afffaf css: Add _gtk_css_parser_try_enum
This helps parsing GType enums in CSS, properly handling
CSS being case insensitive.
2011-11-25 15:36:08 +01:00
Alexander Larsson
c9a3332ede Add generation of private g-types for private headers
This starts with just the gtkcsstypesprivate.h header
2011-11-25 15:36:08 +01:00
Benjamin Otte
08d86fabc4 a11y: Implement ref_state_set using the new APIs
Various tiny semantic changes in here.

The big fix is that we consider every cell as visible and as showing if
the treeview is mapped.
This was also fixed in the tree dump test.
2011-11-24 18:29:45 +01:00
Benjamin Otte
178686ba11 a11y: Add get_renderer_state() to cell accessibles
Accessibles can use this function to query the state that their row
would be rendered with.
2011-11-24 18:29:45 +01:00
Benjamin Otte
bcafd9ba3c a11y: Add _gtk_cell_accessible_set_cell_data()
See the function documentation for details.

Also included is the implementation for the treeview, but no users yet.
2011-11-24 18:29:45 +01:00
Benjamin Otte
416b3ed204 treeview: Notify a11y about reordered rows
That way, no more signal handler is needed in the a11y code. Plus, we
avoid needless signal emissions for rows we don't care about.
2011-11-24 18:29:44 +01:00
Benjamin Otte
fbfbaa3d50 a11y: Don't create fake cell renderers 2011-11-24 18:29:44 +01:00
Florian Müllner
b72b4e79cf build: Add gmodule-2.0 dependency for gtk-query-immodules-3.0 2011-11-24 16:33:02 +01:00
Alexander Larsson
35ffd4cfea win32-theme: Fix up radio and menus in various states
This makes all states in widget-factory look ok
2011-11-24 11:50:02 +01:00
Alexander Larsson
c066136c3a win32-theme: Theme column headers 2011-11-24 11:50:01 +01:00
Christian Persch
3abc31a2d1 color-button: Notify "color" and "alpha" properties when changing the rgba
Bug #664469.
2011-11-23 18:19:48 -05:00
Matthias Clasen
b84d37af4d GtkIconView: Fix a segfault
Keynav on an empty iconview was causing segfaults. This
was reported in https://bugzilla.gnome.org/show_bug.cgi?id=664456
2011-11-23 17:51:58 -05:00
Federico Mena Quintero
e8be9ec01f bgo#662814 - Don't print a g_warning() when GtkRecentManager can't find a file
Also, *do* add the file to the recently-used list, even if the file does not
exist yet.  This is used from the Save dialog, so even shitty apps which don't
add the file to GtkRecentManager, will get the file added from the Save dialog.

Signed-off-by: Federico Mena Quintero <federico@gnome.org>
2011-11-23 09:44:26 -06:00
Cosimo Cecchi
92e6444163 widgetpath: correctly print the siblings index
In gtk_widget_path_to_string() we were counting siblings from zero
instead of one, resulting in confusing output.
2011-11-23 11:22:30 -05:00
Cosimo Cecchi
0d71f62388 frame: don't access padding before it's initialized
Move padding initialization before its first access.
2011-11-23 11:21:29 -05:00
Benjamin Otte
6d0499a500 rbtree: Rewrite to not lose node order
_gtk_rbtree_reorder() was moving the node's data while reordering. As we
use the node pointer in the a11y code as a hash key, this didn't work.

So this rewrite changes that. As a bonus, it is less code and faster.
Woohoo!
2011-11-22 23:29:04 +01:00
Benjamin Otte
3166457802 tests: Add test for _gtk_rbtree_reorder() 2011-11-22 23:29:04 +01:00
Benjamin Otte
c1124df1f2 tests: Speed up rbtree test
We don't need so many tree consistency checks while creating when the
test is about something else.
2011-11-22 23:29:04 +01:00
Benjamin Otte
d8b6414567 rbtree: Remove needless tests
if the checks are run on the nil node, they will get the second test the
  way we expect it anyway, so it's unnecessary.
2011-11-22 03:42:31 +01:00
Benjamin Otte
ae99a9e04a rbtree: Simplify rotation functions
- Make sure the rotated nodes aren't nil
- Use existing functions for complex computations
- Don't use NULL checks for variables guaranteed to not be NULL/nil
2011-11-22 03:32:56 +01:00
Benjamin Otte
37786804e1 rbtree: Remove the nil member 2011-11-22 03:32:56 +01:00
Benjamin Otte
a4630d0e7b rbtree: Introduce _gtk_rbtree_is_nil()
Makes for more readable code than "== tree->nil" and allows removing the
nil member later.
2011-11-22 03:32:56 +01:00
Benjamin Otte
c3056951db rbtree: Introduce _gtk_rbtree_first()
... and use it.
2011-11-22 03:32:56 +01:00
Benjamin Otte
73a834336f rbtree: Replace nil node allocation with a preallocated nil
This has one major caveat: The new value is const, so read-only memory.
Any attempt to write to it will cause a crash. Note that we are not ever
supposed to write to it, but bugs happen...
2011-11-22 03:32:56 +01:00
Benjamin Otte
e2f2289d72 tests: Add a test for the rbtree code. 2011-11-21 22:33:46 +01:00
Benjamin Otte
647c441e26 rbtree: Don't write to nil node
The code used to set nil->parent, which could cause segfaults. Don't do
that. We also need to pass the parent explicitly to the fixup code,
because the node during fixup may be the nil node.
2011-11-21 22:33:46 +01:00
Benjamin Otte
f4fe921a17 rbtree: Add a local variable
This will be needed in the next patch, and I wanted to split that patch
up.
2011-11-21 22:33:46 +01:00
Benjamin Otte
02671f9ec9 rbtree: Move to an approach where we don't move contents
So instead of copying the children and height to the new node, we keep
the old node and copy all the old stuff to it.

This is necessary so the accessibility code can use the node as a key in
the hash table or store the node as a reference to the row instead of
GtkTreeRowReference. And because it already does that (oops), this fixes
a bunch of segfaults with a11y enabled.
2011-11-21 22:33:45 +01:00
Benjamin Otte
1dd9dd45c1 rbtree: Use gtk_rbnode_adjust() even more
Use it for the modified node in gtk_rbnode_remove(). Cleans up the code
quite a lot.
2011-11-21 22:33:45 +01:00
Benjamin Otte
769186dbff rbtree: Use gtk_rbnode_adjust()
Make gtk_rbnode_remove() use it when unlinking the node.
2011-11-21 22:33:45 +01:00
Benjamin Otte
ba7a0a0188 rbtree: Use gtk_rbnode_adjust() more.
Make _gtk_rbtree_node_set_height() use it.
2011-11-21 22:33:45 +01:00
Benjamin Otte
7b2d414222 rbtree: Use gtk_rbnode_adjust() more
Make _gtk_rbtree_insert_before() use it.
2011-11-21 22:33:45 +01:00
Benjamin Otte
01a44e2a16 rbtree: Use gtk_rbnode_adjust()
Make _gtk_rbtree_insert_after() use it.
2011-11-21 22:33:45 +01:00
Benjamin Otte
22a4c15b4f rbtree: Split out a common function
gtk_rbtree_adjust() will adjust the summed values of a node and all its
parents in the tree. Currently only implemented by splitting out the
function from gtk_rbtree_free().
2011-11-21 22:33:45 +01:00
Benjamin Otte
54f3fbfe26 rbtree: Don't set variable twice 2011-11-21 22:33:45 +01:00
Benjamin Otte
6168a64713 rbtree: Add assertions to clarify usage 2011-11-21 22:33:45 +01:00
Benjamin Otte
69a516018f rbtree: Mark all debug sections as debug 2011-11-21 22:33:45 +01:00
Benjamin Otte
af2ebe638c rbtree: Make debug functions private
They're not used elsewhere
2011-11-21 22:33:45 +01:00
Cosimo Cecchi
79bbce5577 notebook: use the current page allocation when computing the redraw area
Instead of taking the first page and trying to adjust the rect with
random padding values, take the current page, as it's always guaranteed
to be at least as tall as inactive tabs.
This fixes some annoying 1px drawing artifacts while switching tabs when
the theme disables notebook padding.

https://bugzilla.gnome.org/show_bug.cgi?id=664494
2011-11-21 14:19:36 -05:00
Cosimo Cecchi
f01162c727 notebook: properly subtract the initial_gap width from the tab space
Instead of modifying the allocation.

https://bugzilla.gnome.org/show_bug.cgi?id=664494
2011-11-21 14:19:36 -05:00
Matthias Clasen
7814718152 Drop uses of @returns syntax 2011-11-21 13:12:58 -05:00
Alexander Larsson
c533482f80 Convert gtk-win32.css to unix line endings 2011-11-21 14:31:17 +01:00
Alexander Larsson
c6dab00595 Add gtk_symbolic_color_new_win32 to gtk.symbols 2011-11-21 13:53:31 +01:00
Alexander Larsson
07e284a1f0 win32-theme: Fix up docs for gtk_symbolic_color_new_win32 2011-11-21 13:52:39 +01:00
Alexander Larsson
4bfa35417b Merge branch 'win32-theme2' 2011-11-21 13:49:44 +01:00
John Ralls
1e737bb61b [icons] text-x-generic isn't a generated icon
Calling it one causes maintainer-clean to delete it.
2011-11-20 16:38:34 -08:00
Javier Jardón
5c6656e485 gtk/gtkapplication.c: Fix typo 2011-11-20 23:05:47 +00:00
Cosimo Cecchi
4626edb889 frame: make sure to allocate the CSS border width
Similar to GtkNotebook, GtkFrame was only allocating space for the
padding width, and not the border.

This could be seen by just running tests/testframe. With a theme that
renders frame borders, setting xthickness = 0 in the test draws the
button border over the frame border, which is wrong.

https://bugzilla.gnome.org/show_bug.cgi?id=664342
2011-11-20 16:03:31 -05:00
Cosimo Cecchi
b9b01f99b6 frame: add GTK_STYLE_CLASS_FRAME in _init()
Instead of adding it every time we use the GtkStyleContext, just add it
in _init().

https://bugzilla.gnome.org/show_bug.cgi?id=664342
2011-11-20 16:03:31 -05:00
Cosimo Cecchi
009224a80e notebook: make sure to allocate the CSS border width
Instead of taking only the CSS padding into account when allocating the
notebook children, also allocate the border width.

https://bugzilla.gnome.org/show_bug.cgi?id=664342
2011-11-20 16:03:31 -05:00
Rui Matos
e60fa49fa7 Bug 653676 - Expand/Collapse doesn't respond after one click
Ignore leave-notify-event when mode is GDK_CROSSING_GTK_[UN]GRAB.
Just [un]grabbing shouldn't cause us to [un]prelight the current arrow
and node.
2011-11-20 21:00:08 +01:00
Kristian Rietveld
44a064fe30 Don't call scroll to cell if the tree view is empty
Account for the case when gtk_drag_finish() didn't actually add a row
(can happen when dragging from an empty tree view to itself ...).
2011-11-20 20:15:48 +01:00
Kristian Rietveld
a069ec662f Bug 660554 - gtk_tree_view_drag_begin: assertion `path != NULL' failed
Turned assertion into silent return.

This assertion is only hit when dragging from an empty tree view.  In
this case, gtk_tree_view_begin_drag() is triggered from gtkdnd.c and not
from gtk_tree_view_maybe_begin_dragging_row().  We actually want to
cancel the drag at this point, but that is not possible with the GTK+
API as far as I can see.

The alternative is to not allowing the drag to start.  This could be
done by simply unsetting the tree view as drag source when it is empty
and setting it as drag source again when rows are added.  I didn't
choose to go with this for now, since this will likely break third party
code.
2011-11-20 20:15:39 +01:00
Kristian Rietveld
64a38bdb82 quartz: fix coding style in quartz-version of gtk_drag_begin_internal 2011-11-20 20:15:32 +01:00
Kristian Rietveld
477b7f27e0 quartz: do not call gdk_drag_begin() twice
This makes drag and drop work again on Quartz.
2011-11-20 20:15:27 +01:00
John Ralls
eafff409c9 [Bug 664238] GTK apps crash when dragging something
Corrects a bad condition in a test in 085b98f4
2011-11-20 10:35:40 -08:00
Matthias Clasen
c3d96ff2c0 Improve AtkText implementations
There was some regressions from the recent display line fix;
while fixing it improve the test coverage and make GtkEntry
and GtkTextView return identical results.
2011-11-19 19:28:48 -05:00
Matthias Clasen
bcc98cf14c Remove leftover debug spew 2011-11-19 18:13:42 -05:00
Matthias Clasen
f2569ba92b Add a missing static 2011-11-19 18:08:18 -05:00
Matthias Clasen
5e11bf18d5 Fix the build 2011-11-19 17:57:26 -05:00
Matthias Clasen
b63724b08e Drop the Beagle search engine
It is not actively maintained.
2011-11-19 15:32:12 -05:00
Michel Dänzer
ab34c79896 Fix gdk_cairo_region_create_from_surface on big endian
gdk_cairo_region_create_from_surface doesn't work correctly on PPC.
This is most prominently seen with the GTK window resize grip, the
shape of which is mirrored every eight pixels horizontally.

At the same time, use an A1 surface for the resize grip shape to
eliminates an A8->A1 surface conversion.
2011-11-19 12:23:27 -05:00
Alexander Larsson
88d059ff09 win32: Default to gtk-win32 theme 2011-11-18 16:54:05 +01:00
Alexander Larsson
f59836a4d0 Build in default win32 css as gtk-win32 2011-11-18 16:54:04 +01:00
Alexander Larsson
a38c48be92 Build gtkwin32css.h from gtk-win32.css 2011-11-18 16:54:04 +01:00
Alexander Larsson
e9ac60830d win32-theme: Add gtk-win32.css 2011-11-18 16:53:55 +01:00
Michael Natterer
9c79f9f868 Turn the private #define for the group-shifting modifier into API
Add GDK_MODIFIER_INTENT_SHIFT_GROUP to enum GdkModifierIntent
and handle it in gdk_keymap_get_modifier_mask(). Add an X11
impl of the method and return keymap_x11->group_switch_mask.
Return 0 from the default impl because we don't know.
2011-11-18 15:14:31 +01:00
Michael Natterer
1c8481a6ea Bug 663856 - Make option-foo accelerators use the right symbol
If the keyboard group shifting modifier is *also* a normal
accelerator modifier, we need to special case it when calling
gdk_keymap_translate_keyboard_state(), so we get the right
key symbol for accelerators (for example we want Option-O,
not Option-Ø displayed in menu items). This patch should only
affect quartz where the Alt key both shifts the group and can
be used as accel modifier, and not X11 or Win32 where AltGr
is not used for accelerators.

- fix quartz' gdk_keymap_translate_keyboard_state() to return
  the right consumed_modifiers
- add _gtk_translate_keyboard_accel_state() which does the
  special casing
- use it everywhere instead of gdk_keymap_translate_keyboard_state()
2011-11-18 13:06:27 +01:00
Murray Cumming
43dd705308 Fix tiny docs typo. 2011-11-18 11:30:07 +01:00
Alexander Larsson
5f782d2449 win32-theme: Support mixing parts
We need this to do something about the non-existing inconsistent
radio button state in win32.
2011-11-18 11:06:32 +01:00
Alexander Larsson
3309639c1c Add support for win32 theme colors as symbolic colors 2011-11-18 10:16:38 +01:00
Alexander Larsson
ca829b484c Add pulse style class and use in progress bar and entry
This is used for indeterminate progress reporting.
2011-11-18 10:15:04 +01:00
Alexander Larsson
68c74e1427 Set top/bottom style classes on spinbutton buttons 2011-11-17 19:43:13 +01:00
Alexander Larsson
a038c589db Add top/left/bottom/right style classes to steppers
This is needed for e.g. win32 theming, but is also generally
useful.
2011-11-17 17:34:05 +01:00
Alexander Larsson
fdbf029df3 win32-theme: Support multiple parts being combined
This is needed for e.g. scrollbar sliders
2011-11-17 14:34:39 +01:00
Alexander Larsson
5e04549548 Render background image if set for checks and options
The default theme engine draws a fallback check/radio image, but
doesn't let you replace this. We now check if a background image
is set and if so render that instead of the default fallbacks.
2011-11-17 12:30:09 +01:00
Alexander Larsson
bc38cf1ff8 win32-theme: Support -gtk-win32-size CSS value 2011-11-17 12:30:08 +01:00
Alexander Larsson
abe6598a13 Add initial cut at win32 theme support for CSS
We now support -gtk-win32-theme-part(class,part,state) in background
and border-image CSS properties. This renders the corresponding
theme part using DrawThemeBackground() and acts as a base for a
CSS based windows theme.

Note that we build the parsing code even on non-win32 so that
all themese will parse the same on all arches. We draw pink instead
of the actual theme parts on non-win32 though.
2011-11-17 12:29:03 +01:00
Alexander Larsson
8b644b40b1 make _gtk_style_property_resolve copy the result to an output value
This is preparation for allowing it to return a newly created
value, rather than just copying one.
2011-11-17 12:27:23 +01:00
Alexander Larsson
2cf3ff956a Actually pass in a StylePropertyContext when getting images
This is in preparation for getting size-dependent results back
with the win32 themes.
2011-11-17 12:27:23 +01:00
Alexander Larsson
7104b4b575 Remove _gtk_style_properties_peek_property
We want to move to a world where getting style properties can
allocate a new value, depending on the style property context.
In this world we can't expose "peeking" a property, as we neet
to return a ref to the property that is newly created.

So, we move the peek code into get_property and use get_property
from get_valist.
2011-11-17 12:27:22 +01:00
Alexander Larsson
c09148ca09 Add GtkStylePropertyContext and use it in when getting style properties
At the toplevel we have _gtk_theming_engine_get, which lets us pass
in a property context with (atm) the size to get the property for.
Then there is a lot of plumbing to push this down into the lower
layers of the style property code until finally hitting
the property resolvers.

I need this because I will be adding a property resolver for win32
theme parts, and they render differently depending on the size
(i.e. they don't scale linearly). The idea is that the code
to get the background properties will pass in the final size
and we will resolve the theme part specification to that particular
size.

If the old non-context calls are used we just hardcode a size
of 100x100.
2011-11-17 12:27:22 +01:00
Alexander Larsson
e953465e33 Save a generic boxes source in GtkImageBorder
We used to special handle gradient, but we want to be able to store
other sources (that will eventually resolve to cairo patterns).
For instance, this is needed to handle win32 theme part sources.
2011-11-17 12:27:21 +01:00
Michael Natterer
0308352417 notebook: don't leak the action widgets
The notebook owns them, so it must destroy them in destroy().
(cherry picked from commit 87ebfb19fd)
2011-11-17 01:07:37 +01:00
Benjamin Otte
73e54ab727 viewport: Get rid of deprecation warnings 2011-11-17 00:46:15 +01:00
Benjamin Otte
65ceff35f9 viewport: Don't use deprecated functions 2011-11-17 00:46:15 +01:00
Benjamin Otte
5bacd8e019 viewport: adjustments are never NULL
So there's no need to check for that in the getters.
2011-11-17 00:46:15 +01:00
Benjamin Otte
2939eae20f viewport: Initialize the adjustment in the init function 2011-11-17 00:46:15 +01:00
Benjamin Otte
0ef224766a viewport: Don't unset the adjustment on finalize
We unset it on destroy already. This makes it consistent with all other
scrollables.
2011-11-17 00:46:15 +01:00
Xan Lopez
2c065d716b treeview: fix the build 2011-11-16 22:41:57 +01:00
Cosimo Cecchi
9986b26c0b treeview: use gtk_tree_view_ensure_background() consistently
In gtk_tree_view_state_flags_changed() we were setting the background on
the bin_window without the necessary "view" style class, making the
treeview render with the wrong color in some circumstances (such as when
adding an empty treeview in a window, as spotted by Brian Smith).
2011-11-16 16:09:00 -05:00
Cosimo Cecchi
8d97d8ca3c treeview: factor out gtk_tree_view_ensure_background()
We'll use it shortly.
2011-11-16 15:59:47 -05:00
Kjell Ahlstedt
e8bb2e4545 Maintain map/unmap invariants in GtkRecentChooserDialog
We used to explicitly map and unmap the child GtkRecentChooserWidget when
mapping and unmapping the dialog, respectively. Now that GtkContainer actually
unmaps child widgets (instead of avoiding that), we can assume that the
child GtkRecentChooserWidget will be unmapped when we want it to be.

This fixes a warning from gtk_widget_verify_invariants(), as we were mapping
our child widget before calling our parent class' ::map() handler. Bug #659257.
2011-11-16 19:56:11 +01:00
Bastien Nocera
ab27fa9bba tests: Add tests for keypad keys parsing
See https://bugzilla.gnome.org/show_bug.cgi?id=606727
2011-11-16 18:49:54 +00:00
Bastien Nocera
de47b90fd1 gtk: Parse keypad numbers correctly
Try to find keycodes for keysyms at level-0 in the keymap, but don't
fail to parse if we can find those in level-1. This fixes the
parsing of numerical keys on the keypad, which require a shift level
through Num-Lock.

https://bugzilla.gnome.org/show_bug.cgi?id=606727
2011-11-16 18:47:39 +00:00
Bastien Nocera
ef5476f16a tests: Check "without keycode" code path too
And see whether the output of gtk_accelerator_parse()
matches that of gtk_accelerator_parse_with_keycode()
2011-11-16 18:05:41 +00:00
Bastien Nocera
c1bdbe610a Revert "tests: Disable accel test until fixed"
The test now works correctly.

This reverts commit ba397a3431.
2011-11-16 15:02:06 +00:00
Benjamin Otte
acbf37bae7 a11y: Merge function into only caller
Also cleann up comments that are misleading now.
2011-11-16 04:39:26 +01:00
Benjamin Otte
a4b88c47cd treeview: Call a11y functions for culmn changes directly
This way, the a11y code knows if a column was reordered, added or
removed and can do the right things instead of trying to guess and
getting it wrong.

Also, this patch finalizes the changes so that only visible columns
exist to the accessibility interface.
2011-11-16 04:39:25 +01:00
Benjamin Otte
5041286166 a11y: Unify column-by-index getting
We are only ever interested in visible columns. Invisible columns do not
exist for all a11y cares.
2011-11-16 04:39:25 +01:00
Benjamin Otte
bbf59c75d7 a11y: Use gtk_tree_view_get_n_columns()
In fact, invent our own function get_n_columns() which actually only
counts the visible functions, because that's the only ones we care
about.

The places where it's not used yet will be changed in the coming
patches.
2011-11-16 04:39:25 +01:00
Benjamin Otte
18181f5417 API: treeview: Add gtk_tree_view_get_n_columns() 2011-11-16 04:39:25 +01:00
Benjamin Otte
f7df354c5a a11y: Fix get_column_index() 2011-11-16 04:39:25 +01:00
Benjamin Otte
f7fed686fd a11y: remove argument from get_column_number()
The argument was always FALSE.
2011-11-16 04:39:25 +01:00
Benjamin Otte
aa1cab1ec2 treeview: Simplify a check
Use the same method as elsewhere.
2011-11-16 04:39:25 +01:00
Benjamin Otte
81f9082d2a treeview: Minor beautification 2011-11-16 04:39:24 +01:00
Benjamin Otte
b1fe9b6b8b a11y: remove useless argument
The argument is unused these days, so don't confuse people with it.
2011-11-16 04:39:24 +01:00
Benjamin Otte
5af4ce6a66 a11y: Remove clean_rows function
It doesn't do anything anymore.
2011-11-16 04:39:24 +01:00
Benjamin Otte
c2410d0d04 a11y: Don't crete cell infos for non-children
When we use a container inbetween, this ensures that the cell infos
don't replace each other in the hash table.
2011-11-16 04:39:24 +01:00
Benjamin Otte
0b26a15b62 a11y: Make find by index lookup use the hash table again
This should give back the performance that was lost with the commit
"a11y: Make the cache lookup function inefficient".
2011-11-16 04:39:24 +01:00
Benjamin Otte
85fee33092 a11y: Add a hash function for cell infos
Note that comparing the tree is not necessary as the nodes are already
unique per row.
2011-11-16 04:39:24 +01:00
Benjamin Otte
104ddf8a6d a11y: Compute the cell index quicker
We have the node available, so we can compute it from there.
2011-11-16 04:39:24 +01:00
Benjamin Otte
a890a61253 treeview: Add _gtk_rbtree_node_get_index()
.. as a replacement for _gtk_rbtree_node_find_parity(). Instead of 1 or
0, the function now returns the index of node in the complete tree
(counting from the root). And this is of course identical to the row
number.
2011-11-16 04:39:24 +01:00
Benjamin Otte
b8dec90f3a a11y: Compute index the easy way
index is row_index * n_columns + column_index

We use it everywhere, why not here?
2011-11-16 04:39:24 +01:00
Benjamin Otte
acc5627e39 a11y: Redo indexing
We now index rows by actual expanded row number and don't count them
ourselves no more.
2011-11-16 04:39:24 +01:00
Benjamin Otte
e927a5b2c7 treeview: Redo row tracking
Track the RBNode/RBTree instead of keeping a TreeRowReference. This is a
whole lot faster and less error-prone.

Also, notify the accessible of removal of rows before actually removing
them, so we have a chance to clean up.
2011-11-16 04:39:23 +01:00
Benjamin Otte
0b716e77ea widget: Add _gtk_widget_peek_accessible()
This function returns the accessible if it already exists. This way we
can call functions on the accessible from the widget itself instead of
having to rely on signals.
2011-11-16 04:39:23 +01:00
Benjamin Otte
24e4a03af2 a11y: Remove needless checks
The cell_row_ref and cell_col_ref variables are always non-NULL, so
there's no need to check it.
2011-11-16 04:39:23 +01:00
Benjamin Otte
918a9d0e3a a11y: Add a cell_info_get_path() function
Reads better and we only need to change it in one place.
2011-11-16 04:39:23 +01:00
Benjamin Otte
5096df14c3 treeview: Remove unnecessary variable
tmptree has the same value as tree everywhere, so just use tree instead.
2011-11-16 04:39:23 +01:00
Benjamin Otte
9f91405d6c a11y: Mark object as defunct in destroy notify
Instead of requiring a special functio to be called before just removing
from the hash table. This simplifies code a lot that used to remove from
the hash table.
2011-11-16 04:39:23 +01:00
Benjamin Otte
bd1bc88ed2 a11y: Remove in_use member
After the latest changes, it is now always TRUE, so adjust the code
accordingly.
2011-11-16 04:39:23 +01:00
Benjamin Otte
40b7e3044e a11y: Don't garbage collect anymore
Instead, remove cell infos immediately from the hash table.
2011-11-16 04:39:23 +01:00
Benjamin Otte
64b825b87b a11y: Improve cell_infos table
- Name it properly
- Make it just a set of cell_infos

Currently it's using direct hash, but as long as we don't actually
lookup stuff from it, who cares...
2011-11-16 04:39:23 +01:00
Benjamin Otte
71011f3e1e a11y: Implement find_cell_info() using qdata lookup
That should be orders of magnitude faster then iterating over a hash
table.
2011-11-16 04:39:23 +01:00
Benjamin Otte
331a4c92b0 a11y: Store the cellinfo in the cell's qdata 2011-11-16 04:39:22 +01:00
Benjamin Otte
d265636526 a11y: Remove index from cellaccessible
That way we also get rid of the refresh_index function.
2011-11-16 04:39:22 +01:00
Benjamin Otte
f05d3f66b1 a11y: Don't use the cell's index anymore
We implement get_cell_index() now, so it's no longer necessary.
As a side effect, we need a different index for our hash table (which
now has a wrong name, but that will soon change).
2011-11-16 04:39:22 +01:00
Benjamin Otte
35b667a409 a11y: Implement get_child_index in treeview 2011-11-16 04:39:22 +01:00
Benjamin Otte
d5b52ae3b1 a11y: Implement get_child_index in treeviewaccessible 2011-11-16 04:39:22 +01:00
Benjamin Otte
b526375e8f gtk: Fix compiler warnings from include fixes 2011-11-16 04:31:06 +01:00
Benjamin Otte
a9dd3e559a a11y: Make the cache lookup function inefficient
Ahem.

This is in preparation for future changes and is not meant to stay this
way. But I want to change the hash table's keys and this is way easier
when nobody is using them.
2011-11-16 04:31:06 +01:00
Benjamin Otte
ac29108586 a11y: Change function declaration
Returning an int seems way easier than having an int out argument to a
void function. Also, it doesn't lead to uninitialized memory, what a
concept!
2011-11-16 04:31:06 +01:00
Benjamin Otte
533ee181de a11y: Add a special-case for cell index querying
I could have tried to make GtkContainerCellAccessible implement
GtkCellAccessibleParent, but the current implementation of that
interface doesn't make sense for it.
2011-11-16 04:31:06 +01:00
Benjamin Otte
02fd1e5a62 a11y: Add _gtk_cell_accessible_parent_get_child_index()
This will soon replace the shenanigans we do to keep the index of cells
current.
2011-11-16 04:31:06 +01:00
Benjamin Otte
2bd69cbf8c a11y: Remove idle handler for focus notifications 2011-11-16 04:31:06 +01:00
Benjamin Otte
0c2f454b41 a11y: Re-implement gtk_tree_view_accessible_get_n_rows()
... using the new _gtk_rbtree_find_index().
2011-11-16 04:31:06 +01:00
Benjamin Otte
635e53433d treeview: Add _gtk_rbtree_find_index()
Uses the parity to do an O(log N) search for the nth element in the
tree in display order of the treeview.
2011-11-16 04:31:06 +01:00
Benjamin Otte
59097ecef4 treeview: Rename "parity" to "total_count"
Now that we use it to actually count the rows instead of just even/odd,
it's better to reflect that in the variable name.
2011-11-16 04:31:06 +01:00
Benjamin Otte
320df163a2 treeview: Make the parity actually store the row number
Instead of just storing the least significant bit of the row number,
store the full row number. This will soon be useful for accessibility.
But CSS could like it, too.
2011-11-16 04:31:06 +01:00
Benjamin Otte
c8e2cd27e9 treeview: Remove special cases when computing parity
The parity of the nil npode is always 0, so no need to check for the nil
node first.
2011-11-16 04:31:06 +01:00
Benjamin Otte
1a241f2348 treeview: Only compute parity once when rendering
This shouldn't affect performance too much, but it I just found it so I
fixed it.
2011-11-16 04:31:05 +01:00
Stef Walter
5b6f0b9893 GtkSpinButton: Clarify clamping behavior in gtk_spin_button_set_range doc
* If the current value is outside the range, it will be adjusted
   to fit within the range, otherwise it will remain unchanged.

https://bugzilla.gnome.org/show_bug.cgi?id=664021
2011-11-15 07:47:35 +01:00
Matthias Clasen
4904a2f45b GtkTextViewAccessible: Respect display lines
This special tweak was lost when porting from GailTextUtil.

https://bugzilla.gnome.org/show_bug.cgi?id=663994
2011-11-15 00:25:18 -05:00
Martin Pitt
76cd14410c Fix GDK linking for Gtk typelib and example builds
Add missing GDK linking to GIR build and examples:

  GISCAN Gtk-3.0.gir
  CCLD   gtk-query-immodules-3.0
./.libs/libgtk-3.so: undefined reference to `gdk_keymap_get_modifier_mask'
./.libs/libgtk-3.so: undefined reference to `gdk_modifier_intent_get_type'
./.libs/libgtk-3.so: undefined reference to `gdk_window_begin_resize_drag_for_device'
./.libs/libgtk-3.so: undefined reference to `gdk_event_triggers_context_menu'
collect2: ld returned 1 exit status

  CCLD   grid-packing
../gtk/.libs/libgtk-3.so: undefined reference to `gdk_keymap_get_modifier_mask'
[...]

https://bugzilla.gnome.org/show_bug.cgi?id=664027
2011-11-15 06:18:18 +01:00
Matthias Clasen
005451e3f3 GtkComboBoxAccessible: Make keybindings work
https://bugzilla.gnome.org/show_bug.cgi?id=659151
2011-11-14 09:26:15 -05:00
Martin Pitt
1c222372d9 Fix gtk_tree_view_get_tooltip_context() transfer annotation
The default (out) transfer mode is "full", but the passed "model" pointer gets
set to gtk_tree_view_get_model() which is "transfer none". This caused Python
programs to free the model after calling this, causing crashes.
2011-11-14 14:33:51 +01:00
Matthias Clasen
242b1f12f8 GtkProgressbar: respect the range of 'fraction'
The setter should not set the property to values outside the allowed
range.

https://bugzilla.gnome.org/show_bug.cgi?id=663825
2011-11-11 10:36:09 -05:00
Rico Tzschichholz
4a43c062ac Fix some implicit declaration warnings
There were some includes of gtkmain.h missing
2011-11-11 13:06:56 +01:00
Alexander Larsson
11e9c6f95f win32: Hack to make statusbar menus show up visible: 2011-11-10 17:41:11 +01:00
Morten Welinder
fefe8e7c8c win32: Actually check for IPrintDialogCallback in configure 2011-11-10 17:41:08 +01:00
Alexander Larsson
06a20d207a Fix build by adding include
build failed with a GTK_IS_VIEWPORT link error
2011-11-10 17:40:46 +01:00
Alexander Larsson
96bae6ad08 Add include to fix the build 2011-11-10 17:25:02 +01:00
Benjamin Otte
24b9599af7 a11y: Get rid of gtk.h includes in headers
This way, we can include them without accidentally including deprecated
code. Which means we can still use the recently added turning-off tricks
for deprecation warnings.
2011-11-10 17:10:04 +01:00
Benjamin Otte
2d3c36a021 a11y: Fix gcc warning 2011-11-10 17:10:04 +01:00
Benjamin Otte
1c96b0b838 a11y: It's not a bug if there's no row at some point
In that case, there's just nothing there.
2011-11-10 17:10:04 +01:00
Bastien Nocera
c30d313afc gtk: Fix parsing of accelerators with keycodes
GDK_KEY_VoidSymbol is not the same as keycode 0. This fixes
keycodes such as "0xb3" being parsed as "VoidSymbol" keysyms.

https://bugzilla.gnome.org/show_bug.cgi?id=663761
2011-11-10 14:33:28 +00:00
Bastien Nocera
d69c7f4776 gtk: Fix GtkCellRenderer ignoring keycodes
We should use the new helper code rather than invent our own
functions again.

https://bugzilla.gnome.org/show_bug.cgi?id=663761
2011-11-10 14:33:28 +00:00
Guillaume Desmottes
fb97c28bca gtktreeviewaccessible: use a value_destroy_func with the cell_info_by_index hash
This ensures that we don't leak any GtkTreeViewAccessibleCellInfo when
re-inserting a new one with the same key.

https://bugzilla.gnome.org/show_bug.cgi?id=663694
2011-11-10 14:49:30 +01:00
Guillaume Desmottes
22807d8469 gtktreeviewaccessible: factor out cell_info_free()
https://bugzilla.gnome.org/show_bug.cgi?id=663694
2011-11-10 14:49:30 +01:00
Matthias Clasen
f711da3d1b uimanager: Work around deprecations 2011-11-09 23:45:58 -05:00
Matthias Clasen
a7958f06e3 treeview: Work around deprecations 2011-11-09 23:42:11 -05:00
Matthias Clasen
190c271986 Add a missing include 2011-11-09 22:03:10 -05:00
Matthias Clasen
a78ab0cfa1 Drop use of GDK_DISABLE_DEPRECATED guards in gtk
We now use function attributes for deprecation so the build-breaking
guards are no longer needed.
2011-11-09 22:02:42 -05:00
Kristian Rietveld
91ae19768e Bug 661997 - Gtk crashes when changing the TreeView model while ...
Simply stopping rubber banding in gtk_tree_view_set_model() eliminates
the crash.  Reported by Thomas Perl.
2011-11-09 08:45:34 +01:00
Ryan Lortie
7e22a5350c Don't implement GApplication mainloop
Let the default GApplication implementation take care of it.

https://bugzilla.gnome.org/show_bug.cgi?id=658805
2011-11-09 00:22:52 -05:00
Benjamin Otte
2783158f8d treeview: Do a simple replace for gdk_window_get_pointer()
Replace it with the equivalent gdk_window_get_device_position() with the
core pointer.
2011-11-09 03:23:43 +01:00
Benjamin Otte
439b9a3b1d queryimmodules: Actually fix deprecation warnings
The previous patch still caused warnings. Ooops. That's what you get for
not compiling with -Werror.
2011-11-09 03:23:43 +01:00
Benjamin Otte
28d3d6e039 treeview: Remove unused crack code
No, querying the pointer position in a draw callback is not a good idea.
No, setting FOCUSSED based on that position is not a good idea either.
2011-11-08 21:14:06 +01:00
Benjamin Otte
fd93e08a7c widget: Don't use deprecated symbols
Not even in deprecated functions!
2011-11-08 21:14:06 +01:00
Benjamin Otte
d41732b729 widget: Deprecate gtk_widget_get_pointer () 2011-11-08 21:14:06 +01:00
Benjamin Otte
a1fb2c863b treeview: Remove call to gtk_widget_get_pointer() 2011-11-08 21:14:06 +01:00
Benjamin Otte
28d0403f17 paned: Pass x/y position to update_drag()
This way we get the coordinates from the right device instead of using
any random device.
2011-11-08 21:14:06 +01:00
Benjamin Otte
80a23a2f2b paned: Remove MOTION_HINT_MASK
It's not needed anymore. GDK does culling of events for us.
2011-11-08 21:14:06 +01:00
Benjamin Otte
68bc011507 menuitem: WOrk around deprecation warnings 2011-11-08 21:14:06 +01:00
Benjamin Otte
a12e12a56d queryimmodules: Disable deprecaion warnings for deprecated header 2011-11-08 21:14:06 +01:00
Benjamin Otte
40db65a85b settings: Disable deprecaion warnings for deprecated header 2011-11-08 21:14:06 +01:00
Benjamin Otte
c9b1e00c30 layout: Work around deprecation warnings 2011-11-08 21:14:05 +01:00
Benjamin Otte
f9c664c69b immodule: Disable deprecations before including deprecated header 2011-11-08 21:14:05 +01:00
Benjamin Otte
e1f4bd6495 gtk: Empty gtkimmodule.h
Move the remaining struct definition into gtkimcontextinfo.h and include
that header in gtk.h. gtkimmodule.h is now an empty header. We should
probably deprecate it somehow.

This is also necessary so headers used in gtk .c files don't include
gtk.h which in turn includes all the deprecated headers which we want to
avoid so we can include them with deprecation warnings turned off.
2011-11-08 21:14:05 +01:00
Benjamin Otte
ba05093fe7 build: Don't append to an accidentally existing file 2011-11-08 21:14:05 +01:00
Benjamin Otte
c2da143aa6 immodule: Move private functions to a private header 2011-11-08 21:14:05 +01:00
Benjamin Otte
bd97127e6c immodule: Fix includes
Make includes not rely on gtkimmodule.h including gtk.h. This will be
important once we remove gtkimmodule from the include files.

That way, we can achieve not pulling deprecated headers automatically.
2011-11-08 21:14:05 +01:00
Benjamin Otte
1c22053baf window: Fix cast warnings 2011-11-08 21:14:05 +01:00
Benjamin Otte
1425ecbc52 treeview: Fix warnings from fixing warnings
Warnings introdcued by fixing deprecation warnings in
2ead4c6038
2011-11-08 21:14:05 +01:00
Benjamin Otte
adcd136f1e icontheme: Get rid of deprecation warnings
Before including deprecated headers, disable deprecation warnings.
2011-11-08 21:14:05 +01:00
Benjamin Otte
7cfe9051cc cellrendererspinner: Ignore deprecation warnings
The cell renderer relies on deprecated functionality, so we need to
disable deprecations for included deprecated headers.
2011-11-08 21:14:05 +01:00
Benjamin Otte
8f8269ad30 cellrendererspinner: Include correct header 2011-11-08 21:14:05 +01:00
Benjamin Otte
9aa7e9f050 button: Don't call deprecated functions 2011-11-08 21:14:05 +01:00
Benjamin Otte
a9134de5d3 assistant: Work around deprecation warnings 2011-11-08 21:14:05 +01:00
Rui Matos
70f87b8bd5 gtk: Add a GTK_STATE_FLAG_WINDOW_UNFOCUSED widget state flag
This allows themes to style widgets differently according to whether the
toplevel window they are in is presented as focused.

https://bugzilla.gnome.org/show_bug.cgi?id=661428
2011-11-08 19:33:22 +00:00
Cosimo Cecchi
f9d16f3923 themingengine: set the cairo extend to PAD when we're stretching bg
This avoids artifacts around the borders due to bilinear filtering cairo
applies to the surface pattern when stretching it.

https://bugzilla.gnome.org/show_bug.cgi?id=663522
2011-11-08 12:41:28 -05:00
Marc-André Lureau
3b436eec6d css: start background-repeat
By default, a background image is stretched. Instead, it is worth to
have a tiled background.

This patch allows background surfaces to be repeated or not, and should
be compatible with future extensions and CSS.

https://bugzilla.gnome.org/show_bug.cgi?id=663522
2011-11-08 11:10:44 -05:00
Marc-André Lureau
ee7ac4fa44 Rename s/GtkCssRepeatStyle/GtkCssBorderRepeatStyle/g
https://bugzilla.gnome.org/show_bug.cgi?id=663522
2011-11-08 11:10:41 -05:00
John Ralls
085b98f470 [Quartz Bug 663182] NSImage throws an exception from _gtk_quartz_create_image_from_pixbuf()"
If a zero-sized NSImage calls lockfocus it throws an exception. Make sure that the image isn't zero-sized before calling lockfocus, and log a warning and return NULL if it is zero-sized.

Have the quartz version of gtk_drag_begin_idle return FALSE if the returned image is NULL.
2011-11-07 14:25:08 -08:00
John Ralls
42656dde57 Revert "[Quartz Bug 663182] NSImage throws an exception from _gtk_quartz_create_image_from_pixbuf()". Utterly screwed up. Sorry.
This reverts commit 8216324e4b.
and          commit 3243e6955c.
2011-11-07 13:57:10 -08:00
John Ralls
3243e6955c Fix accidental paste error in 8216324 2011-11-07 13:18:14 -08:00
John Ralls
8216324e4b [Quartz Bug 663182] NSImage throws an exception from _gtk_quartz_create_image_from_pixbuf()
If _gtk_quartz_create_image_from_pixbuf is given a pixbuf with size 0, 0
or which produces an NSImage with size 0.0, 0.0, it throws an exception
which Gtk doesn't handle.

your changes. Lines starting
2011-11-07 13:11:18 -08:00
Morten Welinder
d80953666e Print preview: make cancel work
This makes cancels of a print preview work in the same way it
works for non-previews, i.e., the operation stops at the next
page boundary.

https://bugzilla.gnome.org/show_bug.cgi?id=662160
2011-11-07 13:10:24 -05:00
Torsten Schönfeld
4ef61e2311 gtk: add annotations for some GtkRadio* constructors
Since constructors like gtk_radio_button_new_from_widget take an
instance of their type as the first argument, the gi scanner interprets
them as methods.

https://bugzilla.gnome.org/show_bug.cgi?id=661858
2011-11-06 16:50:57 +01:00
Florian Müllner
79803d0edc menuitem: Always treat submenus as popup
Submenus are not actually attached to a menubar, but styling them
as if they were imposes some problems (at least with Adwaita).
Just using GDK_WINDOW_TYPE_HINT_POPUP_MENU for submenus instead
fixes the issue.

https://bugzilla.gnome.org/show_bug.cgi?id=662691
2011-11-05 01:49:50 -04:00
Akira TAGOH
4d7e47ddd0 Allow fallback for input method modules
Accept a :-separated list of module names in GTK_IM_MODULE and
the corresponding setting, to deal a bit better with broken
situations.

https://bugzilla.gnome.org/show_bug.cgi?id=603559
2011-11-05 01:48:59 -04:00
Torsten Schönfeld
a72a3160a8 gtk: add annotations for some GtkSymbolicColor constructors
https://bugzilla.gnome.org/show_bug.cgi?id=661859
2011-11-05 01:38:40 -04:00
Benjamin Moody
8318515cd8 Mark gtk_dialog_new_with_buttons as NULL-terminated
https://bugzilla.gnome.org/show_bug.cgi?id=663073
2011-11-05 01:27:25 -04:00
Matthias Clasen
41d4229155 Pop up context menus at the right device
When multiple pointers are in play, we need to be careful
not to loose track of the device between receiving a button
press and popping up a menu.

https://bugzilla.gnome.org/show_bug.cgi?id=663396
2011-11-05 01:24:17 -04:00
Matthias Clasen
7644ef1e3a GtkWindow: Use new begin_resize_drag api
We have an event, so the correct thing to do is to pass
the device into the function that we are calling. GDK
just grew a variant that takes a device, for this purpose.

https://bugzilla.gnome.org/show_bug.cgi?id=663444
2011-11-05 01:14:30 -04:00
Bastien Nocera
ba397a3431 tests: Disable accel test until fixed 2011-11-04 16:40:23 +00:00
Bastien Nocera
780a92b559 gtk: Add test program for keycode parsing
https://bugzilla.gnome.org/show_bug.cgi?id=662755
2011-11-04 16:40:22 +00:00
Bastien Nocera
06b55b2149 gtk: Add accel with keycode parsing functions
Which handle accelerators with keycodes as well as keyvals,
so we can use it in applications that use GtkCellRendererAccel's
"Other" mode of operations (namely gnome-control-center and
gnome-settings-daemon).

https://bugzilla.gnome.org/show_bug.cgi?id=662755
2011-11-04 16:40:22 +00:00
Matthias Clasen
0f167e8b43 Fix make check 2011-11-03 23:58:46 -04:00
Colin Walters
6cf1385e8f introspection: Include deprecated headers for scanner too
https://bugzilla.gnome.org/show_bug.cgi?id=663345
2011-11-03 15:27:56 -04:00
Alexander Larsson
c002c83ec5 Make sure we only show icons in the file selector bookmarks toolbar
This looked really bad in non-gnome settings where default is to
show text too.
2011-11-02 14:46:53 +01:00
Matthias Clasen
20008c33cb Revert a change to the plug/socket headers
I was trying to avoid including gtk.h here, but this breaks
some of our tests, and there's a good chance that 3rd party
code also relies on this include.
2011-11-02 08:28:34 -04:00
Matthias Clasen
2ead4c6038 Remove some more uses of gdk_window_get_pointer 2011-11-02 08:10:42 -04:00
Matthias Clasen
cafef131d6 Remove one instance of gdk_window_get_pointer 2011-11-02 08:10:42 -04:00
Matthias Clasen
adc731fad9 Remove various internal uses of deprecated api 2011-11-02 08:10:42 -04:00
Matthias Clasen
8ad3fd28b8 Don't warn about deprecations in deprecated/ 2011-11-02 08:10:42 -04:00
Matthias Clasen
2de4405c32 Move deprecated gtkwidget style api to gtkstyle 2011-11-02 08:10:42 -04:00
Matthias Clasen
1f827d6214 Don't warn about deprecations in deprecated/
We know we are deprecated here, no need to warn.
2011-11-02 01:21:49 -04:00
Matthias Clasen
feece3c0bb Move gtkstyle and gtkrc to deprecated/
This required a somewhat more substantial include reshuffling.
Some typedefs have been moved to gtkiconfactory.h and to
gtksettings.h.
2011-11-02 01:15:21 -04:00
Matthias Clasen
068e1f0390 Move wholly deprecated files to a subdirectory
Also install their headers to a subdirectory.
2011-11-01 23:51:18 -04:00
Matthias Clasen
98db3dd5dd Move gtk_draw_insertion_cursor out of gtkstyle.[hc]
This function does not use GtkStyle at all and is not deprecated.
2011-11-01 23:51:18 -04:00
Matthias Clasen
8370052180 Don't use *DISABLE_DEPRECATED guards
Instead define GDK_DISABLE_DEPRECATION_WARNINGS where appropriate.
2011-11-01 22:35:57 -04:00
Matthias Clasen
2a9932cf02 Don't use deprecated GValue api 2011-11-01 22:05:29 -04:00
Benjamin Otte
98d215635e tooltip: Don't use deprecated API 2011-11-02 02:32:54 +01:00
Benjamin Otte
5ada0fc382 tooltip: Remove unused variables 2011-11-02 02:32:54 +01:00
Benjamin Otte
54d6ef115b iconview: Keep the device for dnd autoscroll
This is necessary to query the device's coordinates when doing the
scrolling.
2011-11-02 02:32:54 +01:00
Benjamin Otte
e739757bab table: Define GDK_DISABLE_DEPRECATION_WARNINGS 2011-11-02 02:32:54 +01:00
Benjamin Otte
6132f52fa3 handlebox: Define GDK_DISABLE_DEPRECATION_WARNINGS 2011-11-02 02:32:53 +01:00
Benjamin Otte
c10cbf1715 fontsel: Define GDK_DISABLE_DEPRECATION_WARNINGS 2011-11-02 02:32:53 +01:00
Benjamin Otte
e7e3413e2e tests: Remove unused variables 2011-11-02 02:31:54 +01:00
Benjamin Otte
4f9fc252da box: Fix includes so hbox/vbox compile warning-free
And make sure most of the code is included before undeffing deprecated
code.
2011-11-02 02:31:54 +01:00
Matthias Clasen
8669eb49f5 Don't use deprecated Pango api 2011-11-01 21:22:14 -04:00
Matthias Clasen
4460cac3ed Don't use g_value_set_char 2011-11-01 21:18:27 -04:00
Matthias Clasen
4ac4a1bee3 GtkSearchEngineSimple: adapt the GLib thread api changes 2011-11-01 21:06:09 -04:00
Cosimo Cecchi
d808daccc1 iconview: layout items immediately when setting a GtkTreeModel
As the draw handler expects the items to be laid out already, we cannot
queue a layout here to avoid a race condition with the resize that is
queued immediately after, which in turn would lead to a segfault later
in the paint_item() implementation.

https://bugzilla.gnome.org/show_bug.cgi?id=663138
2011-11-01 11:15:50 -04:00
Emmanuele Bassi
a77162ebaf radiotoolbutton: Fix the introspection annotations
Everything that deals with a group has to be fixed.

Plus, we have NULL checks without allowing NULL arguments; since NULL
arguments are perfectly fine, we can relax the argument checks.

https://bugzilla.gnome.org/show_bug.cgi?id=662870
2011-10-28 17:10:46 +01:00
Emmanuele Bassi
931a40844b radiotoolbutton: Fix the annotation for get_group()
Use the same annotation used by gtk_radio_button_get_group().

https://bugzilla.gnome.org/show_bug.cgi?id=662870
2011-10-28 17:10:46 +01:00
Bastien Nocera
0888e6f485 gtk: Fix XIGrabKeycode usage
A modifier of "0" is still a modifier and must be submitted normally.
A num_modifiers of 0 is essentially a noop in the server.

As mentioned by Peter Hutterer <peter.hutterer@who-t.net>

https://bugzilla.gnome.org/show_bug.cgi?id=662839
2011-10-28 12:03:22 +01:00
Matthias Clasen
701c00e8cf Print dialog: small keynav improvement
Mark the page range entry and the copies spin button as
activates-default.

https://bugzilla.gnome.org/show_bug.cgi?id=662670
2011-10-26 22:11:17 -04:00
Matthias Clasen
0f17a846a0 Update grid tests to match
The previous fix changed some test results here.
2011-10-25 23:21:13 -04:00
Matthias Clasen
362ff7bedf Fix gtk_grid_attach_next_to
The function did not behave as intended when @sibling is NULL.
Also add an example to the docs to clarify the intended behaviour.
2011-10-25 23:21:13 -04:00
Michael Natterer
7f80ee3a38 gtkrc.key.mac: add Command-cursor text navigation
and some emacs-ish Control bindings that work in native widgets.
Patch from Michael Hutchinson.
(cherry picked from commit ccf12f7b40)
2011-10-25 22:26:26 +02:00
Michael Natterer
f6d78bf879 gtkrc.key.mac: remove half the file, it was an accidential double paste
(cherry picked from commit 79a92f99a9)
2011-10-25 17:04:37 +02:00
Matthias Clasen
df1e2cd128 Fix more test breakage 2011-10-25 07:38:36 -04:00
Benjamin Otte
b195c7dbb2 a11y: Hack around infinite loops in parent setting
This is kind of a hack to get rid of infinite loops that occur when
child accessibles try to set their parent upon creation but the parent
accessible creates its children in the initialize vfunc. Because in that
case, the parent will not have an accessible set when the child tries to
access it, because it is still initializing itself. Which will cause a
new accessible to be created.

https://bugzilla.gnome.org/show_bug.cgi?id=660687
2011-10-25 07:38:36 -04:00
Cosimo Cecchi
99266c4ceb printunixdialog: fix a GtkTable->GtkGrid typo
Code was treating the GtkScrolledWindow as a grid, not the grid itself.
2011-10-24 16:33:00 -04:00
Matthias Clasen
cd91ab9761 Fix handling of GtkCellRendererProgress::inverted
We were setting the wrong field.
https://bugzilla.redhat.com/show_bug.cgi?id=747761
2011-10-24 13:50:00 -04:00
Cosimo Cecchi
ccdc3c1802 notebook: update tab area allocation when switching page
When the active page is switched, it's important
gtk_notebook_pages_allocate() is called after the bulk of
gtk_notebook_real_switch_page() is run, as the former allocates a
different space according to the currently active tab, which is set by
the latter.
gtk_notebook_pages_allocate() already calls gtk_notebook_redraw_tabs()
when the allocation changes, so just move its call down to
gtk_notebook_real_switch_page() to fix the bug.

https://bugzilla.gnome.org/show_bug.cgi?id=662629
2011-10-24 13:19:39 -04:00
Dieter Verfaillie
16343bc9a9 win32: fix unterminated #ifdef error
By removing all ifdefs as gtk/gtkwin32.c is only built
on win32 anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=662481
2011-10-23 21:46:19 +02:00
Rui Matos
d56484f6ed tooltip: only update shape if the window is realized
If we get a composited-changed signal before the tooltip is ever realized we
have nothing to do.

This actually prevents a segfault in maybe_update_shape() because calling
gtk_widget_get_window() on a non-realized widget returns NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=662467
2011-10-23 16:26:18 +01:00
Michael Natterer
5c4f2ef0c1 gtk: move _gtk_modules_has_mixed_deps() to gtkmodlesprivate.h
and remove gtkmainprivate.h completely.
2011-10-23 13:57:07 +02:00
Michael Natterer
2688ccdbc4 gtk: clean up the private horror
- add gtkmodulesprivate.h and move stuff there from gtkprivate.h
- add gtkprivate.c and move stuff there from gtkmain.c
- add gtkwin32.c and move stuff there from gtkmain.c
- don't redefine GTK_DATADIR and friends in gtkprivate.h
- have _gtk_get_datadir() and friends on all platforms
- remove the horrid hacks where gtkprivate.h can't be included,
  or must be included later due to redefinition of the compile-time
  directories
2011-10-22 23:53:55 +02:00
Michael Natterer
88ad614c73 gtkquartz: don't free the string returned by get_bundle_path()
It's statically allocated.
(cherry picked from commit c040b03c2e)
2011-10-22 23:24:41 +02:00
Cosimo Cecchi
18a638a7d3 GtkRange: use the right widget for coordinate translation
GtkRange needs to check if its allocation intersects with the resize
grip allocation (trimming its own allocation if it does).
In order to do that, it needs to translate its allocation into window
coordinates, and before that, find the window to whose the allocation
is relative; code goes all the way finding the right parent widget, but
then doesn't actually use it when translating the coordinates, leading
to using the wrong rectangles for the intersection check.

https://bugzilla.gnome.org/show_bug.cgi?id=662308
2011-10-21 16:30:34 -04:00
Matthias Clasen
bb1d9aba86 Fix natural/min widht calculations for empty grids
https://bugzilla.gnome.org/show_bug.cgi?id=660139
2011-10-21 16:24:55 -04:00
Matthias Clasen
633918158b DND: Work better with XI2
It turns out that simply using XIGrabKeycode instead of XGrabKey
makes the DND keyboard support mostly work (there seem to be some
minor issues with modifiers). This means we no longer grab the
keyboard actively during DND, which in turn makes Alt-Tab and
other window manager shortcuts work again during DND.

At the same time, bring the DND key handling code into the
multi-backend work, by checking for X11 and XI2 at runtime,
in addition to compile time.
2011-10-20 20:59:50 -04:00
Cosimo Cecchi
0c135cbf2c treemodel: document gtk_tree_path_free() as allow-none
https://bugzilla.gnome.org/show_bug.cgi?id=662230
2011-10-20 09:27:17 -04:00
Stef Walter
385b7a3031 gtk: GtkToolbar returns invalid paths when adding tool items
* Calculate siblings_path on demand, so that it's always correct
   and doesn't get out of sync with the toolbar state.

https://bugzilla.gnome.org/show_bug.cgi?id=662177
2011-10-20 14:11:28 +02:00
Cosimo Cecchi
febc29852b tooltip: add support for opacity and rounded corners for tooltips
Rounded corners now will always work, using XShape in case we're not
running a composite manager.
Also, setting an RGBA visual (if available) on the tooltip toplevel
enables them to be transparent if the theme specifies so.

https://bugzilla.gnome.org/show_bug.cgi?id=599617
2011-10-19 15:15:00 -04:00
Antoine Jacoutot
d987a01d80 GMountOperation on OpenBSD: remove the need for kvm(3)
kvm(3) is considered a deprecated interface, so make
GMountOperation::show-processes use the recommended sysctl(3) interface
instead. This also removes the need to link with libkvm.

https://bugzilla.gnome.org/show_bug.cgi?id=661835
2011-10-17 19:06:41 +02:00
John Ralls
1db5b34b97 Bug 658772: Directory paths for resource directories are hard coded.
Corrected formatting to match coding standards; introduced local statics
to prevent leaking returned strings.
2011-10-15 12:41:53 -07:00
Torsten Schönfeld
a95c4c1bb4 gtk: fix syntax of an annotation 2011-10-15 19:37:43 +02:00