Make gtk-reftest consult the REFTEST_MODULE_DIR environment
variable to find out where to look for modules, and fix the
libtool hack to construct the .libs subdirectory correctly.
This was another victim of clipping changes - the labels were
overdrawing each other, leading to test failure. Prevent this
by separating the grid columns.
I found that setting margins to zero makes the textview clip
away some overshooting pixels. So, instead of a 0/10 split,
do this test with a 2/8 split of margins, to avoid the clipping
issue.
AM_PATH_GTK_3_0([3.4], [], [], [gthread]) results in calling
"pkg-config --atleast-version 3.4 gtk+-3.0 gthread-2.0".
With pkg-config 0.28, that test fails, because the version of
gthread-2.0 is smaller than 3.4. This appears to be a behaviour
change since 0.26, but matches what the documentation said in 0.26.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=641638
Bug-Debian: https://bugs.debian.org/756476
Reviewed-by: Matthias Clasen <mclasen@redhat.com>
This shows what one currently has to do manually to get the typical
selection mode with blue headerbar and checkboxes in list rows.
The goal is to make this easier.
Make the Visual C++-related build files contain the actual GTK+ version, by
generating them during the configure stage and dist'ing them in the release
tarballs. This is especially important for builds of introspection files,
as one may need to look at the release version of GTK+ in those files.
Define ISOLATION_AWARE_ENABLED for the build of the GTK DLL so that visual
style can be applied to the Windows print dialog for all applications using
gtkprintoperation.
Update the script for the generation of gtk-win32.rc for MSVC to not try to
embed the manifest from it (but embed libgtk3.manifest by including it in
the project files, as we are now doing), and embedding the manifest file is
really not supported in MSVC 2010 and later.
Also fix up formatting in the GTK DLL projects.
https://bugzilla.gnome.org/show_bug.cgi?id=733773
gtk_gesture_drag_get_start_point and gtk_gesture_drag_get_offset
have out args that need to be annotated.
This commit adds the (out) and (nullable) annotations as appropriate.
https://bugzilla.gnome.org/show_bug.cgi?id=734292
Use the Python script that was used to create gtk-win32.rc from
gtk-win32.rc.in to similarly create libgtk3.manifest. As the wildcard
character can be used for all architectures, use that.
The libgtk3.manifest file needs to be specified explicitly in the projects,
so that it will be recognized and built into the GTK dll, so update the
project files as well on this part.
https://bugzilla.gnome.org/show_bug.cgi?id=733773
For that to happen the libgtk3 is embedded with a manifest that requests
common controls library 6.x, and GTK lazily calls InitCommonControlsEx()
to initialize those. Then this manifest is used to temporarily override
the process activation contest when loading comdlg32 (which contains the
code for the print dialog), ensuring that it too depends on common
controls 6.x, even if the application that uses GTK does not.
https://bugzilla.gnome.org/show_bug.cgi?id=733773
handle_x always corresponds to the visible position of the handle,
which is where we want to start the animation. Without this, repeated
keyboard activation will not always animate.
Since we are storing positions here that depend on the allocation,
we need to update them in size-allocate. This fixes incorrect
positioning of the handle if the switch is active initially.
https://bugzilla.gnome.org/show_bug.cgi?id=734213
This adds a new test which can be scripted to trigger various
event and action sequences, and record state changes in the
accessibility layer.
So far, there are a few tests verifying state changes when
focus changes.
Related to https://bugzilla.gnome.org/show_bug.cgi?id=715176
This utility would likely be useful for Windows builds of GTK+, given the
reasons Alex cited for coming up with this utility[1], and MSVC build
support for librsvg is not available at this time (possible, but not
implemented yet).
[1]: https://bugzilla.gnome.org/show_bug.cgi?id=730450
In bug 733773, gtk-win32.rc was removed from the dist in the attempt to
make the print dialog on Windows themed, so this script was added so that
the gtk-win32.rc file can be generated during the Visual Studio builds of
GTK+ from the autotools scripts. This is also intended for filling in the
arch of the build for MSVC builds for the manifest that is also required
for fixing bug 733773. Python is used as it is already needed for
This is done as a custom build rule in the Visual Studio projects so that
it is easy to clean and rebuild gtk-win32.rc upon an update.
https://bugzilla.gnome.org/show_bug.cgi?id=733773
Rows are not necessarily selected via select_row_internal(), add
the missing signal emissions there. Also the signal should be emitted
when removing the selection altogether.
https://bugzilla.gnome.org/show_bug.cgi?id=729809
This counterpart to gtk_application_get_accels_for_action() lets you
find out if a particular accelerator has one or more actions associated
with it. This might be useful from an accelerator editor or plugin
system to prevent the the installation of conflicting accelerators.
https://bugzilla.gnome.org/show_bug.cgi?id=721367
Currently, jhbuild-ing GTK+ on Ubuntu 14.04 LTS and gcc 4.8.2 errors out with
/usr/bin/ld: encodesymbolic.o: undefined reference to symbol 'g_file_new_for_path'
/opt/gnome/lib/libgio-2.0.so.0: error adding symbols: DSO missing from command line
when trying to build gtk-encode-symbolic-svg. This is because $(GTK_DEP_LIBS) isn't defined in $(gtk_encode_symbolic_svg_LDADD) in gtk/Makefile.am. This patch should fix that.
Thanks to b4n and gregier in irc.gimp.net/#gtk+ for help.
https://bugzilla.gnome.org/show_bug.cgi?id=734201
An animation may be scheduled while the textview content changed in size, so the resize
queued would just unset the animation and set the adjusments with a current value,
defeating gtk_text_view_scroll_to_iter(). In this case, just avoid the adjustment change,
as there is a target value on the way.
https://bugzilla.gnome.org/show_bug.cgi?id=733406
Popovers may get relocations optimized away if only x/y changed
in the GtkAllocation. So make sure the toplevel updates popover
positions on all situations.
https://bugzilla.gnome.org/show_bug.cgi?id=729140
It is bad if the image that is used as a fallback for missing
images goes missing itself, so include it as a resource. This
way, it will always be available.
The rules-hint property has always been a fairly bad application API, as
it set some wrong expectations for the developers; deferring to the
theme makes it impossible to design application reliably, and if this is
a usability setting we should either impose this setting on every theme,
or simply drop it.
Our own default theme does not honour the zebra striping, which makes
this function even more questionable.
In practice, usability studies on zebra striping have demonstrated that
alternating colors on a list it improves readability just as much as
clear ruling between rows, or by visually differentiating the selected
row. Zebra striping improves readability (or, at least, it does not
hinder it) on static displays, like a table on paper or a document; on a
dynamic display, like an application's UI, there are different
strategies that yield similar, if not better, results.
https://bugzilla.gnome.org/show_bug.cgi?id=733312
The next call to gtk_list_box_get_selection_mode just expected the
GtkListBoxRow's parent to be a GtkListBox and failed when the row was
added to something other than a GtkListBox.
https://bugzilla.gnome.org/show_bug.cgi?id=733782
If an icon theme has a file called "foo-symbolic.symbolic.png" which
was converted from svg using gtk-encode-symbolic-svg we will read
it in an recolor, allowing symbolic icons without using librsvg.
https://bugzilla.gnome.org/show_bug.cgi?id=730450
If the same position is requested on a popover, it should at least ensure
the window is realized and raised, even if no resizes are queued on the
content. Otherwise other widgets being mapped might raise the windows over
the popover's if its original position is unchanged.
https://bugzilla.gnome.org/show_bug.cgi?id=734129
It turns out that when we were painting the shadows, we painted the them
with the base color once, which contained the alpha, and then blurred it
and used it as a mask for the fill, which has the fill again.
To fix this, always paint the base surface with full alpha. The existing
code applies the blur conditionally sometimes in weird ways, so the code
shuffling fix may not look correct, but be assured it is. If the blur
happens, the new cr we return has the *default* color applied, which is
fully opaque black, which works perfectly against the A8 surface.
The fallback spinner code needs some modification, since it is
intentionally using the alpha to paint the lobes which are "in the past".
Since we shouldn't be hitting this fallback path very often, we use a
temporary group and paint it with paint_with_alpha, even though it is
slow.
Introduce a new debug category "actions" and write some messages from
GtkActionHelper about if we can find the actions or not.
We will probably soon want to add some similar messages to
GtkMenuTrackerItem.
https://bugzilla.gnome.org/show_bug.cgi?id=733965
X11 backend doesn't, and for good reason - main code body does not check
that the window it sets opacity for is, in fact, toplevel.
Just silently fail to do anything for non-toplevel windows.
https://bugzilla.gnome.org/show_bug.cgi?id=733769
This leads to an assertion failure, because parent window is never registered
in the first place, widget's own GdkWindow is. But that window is unregistered
in a generic fashion by GtkWidget code, so there's nothing for us to do here.
https://bugzilla.gnome.org/show_bug.cgi?id=733766
Instead of slavishly following the naming spec, group the icons
into categories that are more likely to be useful for application
developers. Based on input from Allan Day and Jakup Steiner.
So far, gtk_window_set_focus just did not work when called on
a hidden window. Change it to record the desired focus widget
for hidden windows, and apply it when the window gets shown.
This is similar to how we tread other window properties that
can't be set before the window is realized, like maximized
or fullscreen.
This is related to
https://bugzilla.gnome.org/show_bug.cgi?id=734033
The previous code for computing the clip rectangle forgot to respect
the text-shadow CSS property. This is usually not very visible because
text shadows usually don't extend the ink rectangle by very much.
See attached testcase for an example.
Support environment variable GDK_WIN32_FONT_RESOLUTION that can be set to
a desired dpi (72, 96, 130, etc) to override system settings. Useful for
debugging, since changing system font scaling requires the user to log off
and log on again.
https://bugzilla.gnome.org/show_bug.cgi?id=734038
Although there is the "changed" signal, it is more correct to notify the
"text" property too. It can be useful for a small text view, where the
text is saved e.g. to gsettings with a binding to the text property.
The "text" property includes only the text, not child widgets or images,
so the notify signal is sent too many times (also for child widgets and
images), but it's not a big problem.
https://bugzilla.gnome.org/show_bug.cgi?id=624791
Currently, when loading an image from a GResource or file we don't take
the scale factor of the display into consideration, and let
GtkIconHelper scale it accordingly.
While this in general works for non-scalable images, we can take
advantage of the native loader's scaling for e.g. SVG images, and load
them at the right scale factor automatically.
This is achieved by switching to a pixbuf loader instead of using the
native function.
https://bugzilla.gnome.org/show_bug.cgi?id=733416
Use (cairo) input shape of the window to check whether a point is inside or not
inside the window.
If it is, let the default window procedure do its thing (which seems to be
working all right in all known cases).
If it isn't, override the default window procedure and tell WM what we think.
Don't do any of the above if the window has CSD-incompatible styles (WS_BORDER
or WS_THICKFRAME).
This is a crude kind of substitute for window input shape support (which W32
does not seem to have). Still probably enough to be positive about input shapes
support.
https://bugzilla.gnome.org/show_bug.cgi?id=733679
This allows subclasses to render things below and above the text
in the text view. This allows e.g. GtkSourceView to highlight the
cursor row and to render overlays for colum 80. This used to be done
by rendering before/after chaining up to the parent, but that doesn't
work anymore since the view now renders a background, and due to the
use of the pixel cache.
This reverts commit 1ac13435b7.
We want to instead replace this with special vfunc for drawing
below/above the main text so that gtksourceview can use it.
Delay the keyboard settings creation until we're delivering the key
press. This means we don't have to create the settings for a server that
sends us repeat information.
This function currently calls gdk_win32_window_shape_combine_region(),
which is wrong, because it leads to SetWindowRgn() being called with
non-NULL region, which makes W32 disable theming (particularly - decoration
theming), which makes decorations revert back to old GDI-drawn Windows 2000
variant, which looks out of place and interacts *badly* with alpha channel
(because GDI).
https://bugzilla.gnome.org/show_bug.cgi?id=733671
This was silently broken - the code was just assuming that the
text cell renderer is item no. 6 on the list of all cells. That
doesn't work so well if the cell renderers are set up elsewhere
and get rearranged.
Fix this by keeping an explicit pointer to the the text cell.
For images without a concrete size but with an aspect ratio, we took the
wrong code path.
(I even copied the documentation that said "Otherwise" but didn't put an
else clause there, go me!)
The widget path code copies elements only in gtk_widget_path_copy() -
which is essentially unused - and in
gtk_widget_path_append_with_siblings() - which is used by GtkBox.
So stuff the widget we are testing in a GtkBox to reroduce the problem.
Now that widget paths are allowed to have a state, use that state when
querying style properties. This uses a fast path in gtkcssprovider.c and
that is great.
Header-bar and action-bar buttons used to be bigger then others
now everything is as big as those, maintaining two different sizes
for default widgets depending on the placement is a maintainance
nightmare and having controls the same size is good from a usability
point of view.
The toplevel_window was never set, and the only place where it
was used was causing us to hide tooltips needlessly. So removing
it is a double win.
https://bugzilla.gnome.org/show_bug.cgi?id=733321
Add yet another tab for showing information about a widget that
does not quite fit into any of the other tabs (not a property,
not style information, etc...).
For now, we show the widget state, as well as the default and
focus widget for windows.
GtkArrow is deprecated and is not used internally anymore by the
menu button. Document also the fact that if no direction is specified
then the view-context-menu icon is shown.
https://bugzilla.gnome.org/show_bug.cgi?id=733441
People expect to be able to call gtk_widget_show_all on the dialog
to make action widgets visible, as seen e.g. in
https://bugzilla.gnome.org/show_bug.cgi?id=733431
To keep this working, we can't always set no-show-all on the
action_box. Only set it when the action_area is not used and empty.
With this, Ctrl-Q will close the window, and Ctrl-D will
toggle the dark theme. The accelerators are currently not
shown in the (manually constructed) menus.
The accel label in menus was getting a small allocation that
caused its draw code to always omit the accelerator string.
Fix that by setting halign to fill. To keep the menu label
left-aligned, set xalign to 0 to compensate.
Make gtk_widget_path_append_for_widget() add the state flags of the
widget, too.
This enables the ability to select pseudoclasses on all elements in a
selector.
Don't take a state when constructing the CSS matcher. Instead, rely on
the newly introduced state in the widget path.
This way, the state can be queried not only on the first element, but on
all elements of the widget path.
Set the widget path state flags with the state flags of the style
context.
We do not update the state flags but replace the previous one because we
want to be able to have save()/restore() unset state flags.
Make backdrop insensitive state more similar to the focused
windows one, mostly to make dark variant more usable and
focused -> backdrop transition less distracting.
Add left/right/top/bottom style classes according to which edge(s)
of the progressbar the progress is adjacent to. Only for a fraction
of 1.0 will we set more than one edge.
xdg-shell has moved on and replaced set_margin with set_window_geometry.
To properly support set_window_geometry requires a full rewrite of how
we've been dealing with toplevel windows for now, so just don't set any
margin until we can have a proper toplevel window abstraction in GTK+.
Don't shadow existing variables. Instead of sharing the allocation and
then overwriting the width/height when convenient, declare it in the
block we use it in, as, really, the three different paths are all
extremely different, and there's no sense in sharing the variable.
We can't avoid calling set_titlebar in buildable_add_child, since
GtkBuilder assumes that it can e.g. call grab_default at the end,
which only works if the widget is inside a toplevel at that point.
Instead, drop the titlebar and clean up priv->headerbar in constructed
if we find that we don't want a headerbar.
find_by_log_attrs() can return true only in this case:
return moved && !gtk_text_iter_is_end (arg_iter);
So if the iter moved (i.e. something has been found), but is the end
iter, find_by_log_attrs() returns false.
Now the same checks are made in find_visible_by_log_attrs(). The public
functions using find_visible_by_log_attrs() say in their documentation
that false is returned for the end iter, hence the check with
gtk_text_iter_is_end().
https://bugzilla.gnome.org/show_bug.cgi?id=618852
attrs[len] is the last PangoLogAttr available, at the iter position after the
last character of the line.
For a line in the middle or the start of the buffer, the '\n' is taken
into account by 'len'. For example the is_word_end is generally reached
before the '\n', not after. But for the last line in the buffer, where
there is no trailing '\n', it is important to test until attrs[len].
The bug didn't occur before because find_by_log_attrs() worked directly
on the iter passed as the function argument. But now it is no longer the
case.
https://bugzilla.gnome.org/show_bug.cgi?id=618852
- Return true (found) and false (not found) explicitly.
- Set found_offset only when something has been found.
find_backward_cursor_pos_func() was a bit different, the while loop had
the condition "offset > 0" but the return was "offset >= 0". Probably a
micro-optimization, since offset == 0 is always a cursor position.
Anyway now the code is the same as the other functions.
https://bugzilla.gnome.org/show_bug.cgi?id=618852
Do not work with the iter passed as the function argument. Work with
another iter, and set it back to the function argument only if something
has been found.
This fixes a few unit tests. But there are regressions for a few others.
https://bugzilla.gnome.org/show_bug.cgi?id=618852
The Adwaita icon theme ships spinners in a scalable directory
with MaxSize=32 and Scale=1. One way to make them scale up in
hi-dpi would be to add an @2 directory with MaxSize=32 and Scale=2,
but that directory would also be consulted in non hi-dpi situations
and give us an effective spinner max size of 64.
Instead, treat svg icons implicitly as hi-dpi, and scale them
up to MaxSize * 2 when in hi-dpi.
This was causing menus to show up in the wrong position in case the menu
popped up towards the top and/or left.
The change to the requisition was in error; it is the allocated size
of the menu, not the toplevel, and doesn't include the shadow.
https://bugzilla.gnome.org/show_bug.cgi?id=591258
This had originally been added to Adwaita in the gnome-themes-standard
commit 7bf01517bc2 but was lost during 3.13 theme changes, causing bug
591258 to reappear.
Like the autotools builds of the introspection files, don't include gtkx.h
in the introspection prepropcessing as it should not be included by other
GTK+ headers.
We now apply the .button style class to rows that are either
activatable or selectable. Selectable rows only get the .button
if the listbox allows selection. This implies that we need to
update row styles when the selection mode changes, or when the
row gets added to a listbox.
Having an explicit property for this will make it easier
to have a hover style only for rows which are activatable
or selectable.
Rows are selectable by default, to preserve compatibility.
It's hard to figure out what the "expected_reply" means except under
close examination -- it's actually talking about whether this was a
reply to a ConfigureRequest or not. The inversion in the check doesn't
help either.
Make the code cleaner by moving it above the freeze/thaw case, and
making the check more explicit and without a confusing variable. If we
haven't sent any ConfigureRequests out, then it must be a gratuitous
ConfigureNotify.
Some windows, like GtkWindow and some other apps, set a transparent
background. The guarantee for begin_paint_region is that there should
be a full clear to the specified background color, not a composite
against what was there before.
This fixes repaint artifacts in Wayland and Weston in a better way than
76922c169f.
Slapping file:// in front of a path does not guarantee a working
uri (e.g. if you are on windows and the path looks like F:\\...).
Therefore, go back to using g_file_new_for_path if we don't have
to deal with a resource.
It turns out that activate-on-single-click interferes with the
expected multi-selection behavior. Turn it off, since there's nothing
to activate in this list, anyway.
The animated scrolling interferes with incremental validation.
As short-term solution, disable scrolling animation during
incremental validation. This is not a proper solution, but
it avoids broken behavior like scrollbars that are not reacting
to clicks. The problem was visible, e.g. in the list view
example in gtk3-demo.
The animated scrolling interferes with incremental validation.
As short-term solution, disable scrolling animation during
incremental validation. This is not a proper solution, but
it avoids broken behavior like scrollbars that are not reacting
to clicks. The problem was visible, e.g. in the list view
example in gtk3-demo.
gdk_x11_display_set_window_scale() affects the interpretation of the
Xft/DPI XSETTING - it is substituted inside GDK with the value of
Gdk/UnscaledDPI xsetting. However, this change is not propagated to
GTK+ and from GTK+ back to gdk_screen_set_resolution() until the
main loop is run.
Fix this by handling the screen resolution directly in gdk/x11.
This requires duplication of code between GDK and GTK+ since we still
have to handle DPI in GTK+ in the case that GdkSettings:gtk-xft-dpi
is set by the application.
https://bugzilla.gnome.org/show_bug.cgi?id=733076
Conceptually, text handles are boxes, whose content is a 'handle',
so draw background, frame and handle. With this, and the previous
commit, the cursor-handle theming in Adwaita now works as intended.
The text handles reuse the style context from their parent widget,
and just add .cursor-handle. That means that the more specific
entry selectors override the .cursor-handle theming unless we
select for .entry.cursor-handle. We also need to work harder to
keep the .entry styling from drawing decorations around the outlines.
The listbox code relies on the container focus adjustment handling
to scroll the cursor row on screen. But GtkContainer has no idea
about row headers, so ensure that we scroll the header on screen too.
Use gtk_text_iter_set_line_offset (&tmp_iter, 0) instead of
gtk_text_iter_get_line(). The difference should not be big. In the first
case the line doesn't need to be traversed thanks to the offset 0. For
get_line(), the btree must be traversed.
A temporary iter is needed to not break the behavior. But the behavior
is quite strange, the function works directly on the iter passed as an
argument to the function, even if the function returns FALSE (not
found). So maybe a later commit will fix this strange behavior.
https://bugzilla.gnome.org/show_bug.cgi?id=629129
find_by_log_attrs() was a recursive function. It is replaced by an
iteration.
The already_moved_initially parameter was TRUE only for the recursive
call, so the paramater is removed.
There is also a small cleanup of the find_visible_by_log_attrs()
(remove trailing spaces, fix indentation).
There is still a part to optimize for a later commit.
https://bugzilla.gnome.org/show_bug.cgi?id=629129
This is fallout from the recent dialog changes. We don't set the
headerbar as titlebar early enough anymore, so when the window title
gets set, it does not get passed on to the headerbar. So, re-set it
manually when the titlebar is put in place.
https://bugzilla.gnome.org/show_bug.cgi?id=733099
This will let us theme activatable rows differently.
We also avoid emitting the ::row-activated signal for
rows that are not activatable. For compatibility reasons,
rows are activatable by default.
https://bugzilla.gnome.org/show_bug.cgi?id=733112
Move the touchscreen switch to the other debug switches, and
move the hidpi spin to the other graphical controls. Since the
Visual tab is getting large, make it scroll. The General tab
is purely informational again.
Otherwise, the CSS background we draw would be clipped if the ink rect
was smaller than the allocation (a very common thing).
Broken since 37030a7710 where we clipped
to the ink rect.
The paned examples on page 2 were implicitly relying on labels
drawing unclipped. Instead of setting the view class only on the
labels, set it on the paned's instead.
The overlap was caused by using pack-end for the arrow, which
causes it to be allocated from the other end. Avoid the problem
by using pack-start for both the title and the arrow, and
reordering them according to xalign.
... so that it works with wide separators. Or rather: with separators
that don't request 1px size but any other number. Do that by making the
placeholder request the same size by indeed stuffing (hidden) separators
in it.
Some of the features we expose can be hardcoded via environment
variables. In that case, don't confuse the user by letting them
change settings that have no effect.
The displacement animation has been replaced by edge gradients, that
have a stronger color the harder overshooting is hit. This makes it
possible to remove the internal overshoot window, which was merely
used to have contents displaced when overshooting to top/left.
Overshooting to bottom/right used to cause queue_resize() to be
called on the scrolled window, this isn't necessary anymore either.
https://bugzilla.gnome.org/show_bug.cgi?id=731297
There was this hack, taken verbatim from GtkCList according to the comment,
that would recursively translate the allocation during scrolling, and set
it on children widgets through the direct gtk_widget_set_allocation() setter.
Since commit 4f89eb05cf, this has caused the wrong clipping areas to children
widgets of a textview. The reasons for this seem lost in time, and the approach
seems indeed wrong for windowed widgets as the repositioning of those windows
couldn't happen.
So replace all of this with just a gtk_widget_size_allocate() call, which does
work ok for the children widgets embedded in the "multiple views" gtk demo, and
ought to work for every other widget.
https://bugzilla.gnome.org/show_bug.cgi?id=732900
The reparenting happening on the column header so it gets a movable
window breaks the implicit grab, so this is one situation were we
want a pointer grab, if just to replace it.
https://bugzilla.gnome.org/show_bug.cgi?id=732933
Code was expecting view coordinates, not widget ones, as we're
only dealing with horizontal displacements, just adding the
horizontal adjustment value suffices.
https://bugzilla.gnome.org/show_bug.cgi?id=732933
This saves some code and lets us reuse the color swatch styling.
Among other things, this fixes a lack of discernible border when
the selected color is very similar to the background.
https://bugzilla.gnome.org/show_bug.cgi?id=680885
The recent reshuffling caused an ordering problem where we would
hide the action area before relocating the buttons to the header
bar. But hiding makes the default button loose its defaultness.
Rearrange things so that we move the buttons before hiding the
action area, and thus preserve the default.
If the drag gesture gets a GtkGesture::updated signal, the user
is directly interacting through pointer/touch with the range slider,
animating the adjustment value change in this situation can produce
perceived lag, so set the value immediately when this is happening.
Use the adjustment target value when repositioning the cursor, and remove the
checks that ensured the cursor was made onscreen immediately, as there will
be definitely a delay on animated adjustment changes.
When moving the cursor, compare current adjustment value with the post-animation
target value, in order to avoid false "keynav failed" positives as the animation
hasn't started yet, so dx/dy are still 0 at that time.
We move our menus.ui file into Gtk's namespace so that it will get
picked up. Accordingly, we no longer have to do any of the work for
ourselves...
https://bugzilla.gnome.org/show_bug.cgi?id=722092
Use the new ::resource-base-path property on #GApplication to attempt to
load the menu layout of the application.
We look first at gtk/menus-appmenu.ui or gtk/menus-traditional.ui
depending on the setting of gtk_application_prefers_app_menu(). Failing
that, we fall back to the common case of gtk/menus.ui (which should
always be given). This provides a convenient way for application
authors to provide a different set of menus, depending on the desktop
environment they find themselves in.
As is the intention with other resources, if the resource base path is
unset, nothing will be loaded. Additionally, if the expected files are not
found, it is not an error -- just nothing happens.
https://bugzilla.gnome.org/show_bug.cgi?id=722092
Move bloatpad to ./examples/bp/ so that we can start treating it as more of a
"normal" app instead of just jamming everything into a single .c file.
We don't use the name "bloatpad" for the directory in order not to
create 'git pull' pain with the probably-already-existing executable of
the same name.
https://bugzilla.gnome.org/show_bug.cgi?id=722092
For the transition to work the box-shadows types in the shadow list
needs to be matched in various states so I'm using transparent shadows
istead of resetting them when not needed.
Keep Ctrol-Shift-D as a straight toggle-the-inspector keybinding,
but make Ctrl-Shift-I always bring up the inspector, and point
it at the widget under the pointer.
When clicking 'Action' in the 'Act' dialog, we mark the third
page as needing attention a second later. This unveils that we
currently don't have any theming for needs-attention in Adwaita.
The way that GtkTextView et al pop up their context menu is to first
query to see if the clipboard has some text, and if so, enable the Paste
menu item. But since the Wayland backend hasn't had the greatest
selection and clipboard code, the callback for the clipboard got dropped
on the floor.
Add some simple code to respond to the TARGETS selection.
This makes right-clicking on a GtkTextView work fine.
Resize grips were introduced for GNOME 3.0, before we had any of the
"new GNOME app" features like invisible borders and CSD. With OS X 10.6
and 10.7, Apple has replaced the classic grips in their applications
with invisible borders as well.
New GNOME app designs don't use resize grips anymore and the new
default theme for GTK+, Adwaita, disables them entirely by forcing their
width and height to 0.
They're past their time. Remove the code to support them. This can
always be reverted if some app relies on them.
The resize grip code in GTK+ likes to call gdk_window_raise a lot. The
unfortunate side effect of gdk_window_raise is that it queues an
invalidation on the entire window, even if it's already the topmost
child.
Add a return value to gdk_window_raise_internal, and only queue the
invalidation if the raise had an effect.
Otherwise, a user that calls gdk_window_resize (window, 0, 0); over and
over won't properly fizzle out, and will queue a redraw. Clipped, but
still. These redraws can be chatty on some platforms like Wayland, and
there's no good reason to not avoid them.
This was the case for resize grips.
We decided in f8412eca34 that
we still need to react to these for a11y reasons, but left
the (then) harmless property deprecation in place. Now, the
deprecation causes runtime warnings for merely reading the
property, so drop it.
https://bugzilla.gnome.org/show_bug.cgi?id=732667
.scrollbars-junction borders were removed by setting border-stylei: none,
it interacted (why?) with the scrollbars on sidebar, making the border
transparent seems not to have side effects there.
When showing and hiding the inspector window repeatedly without
dismissing the dialog, we were hiding the inspector, but not
the dialog, leading to a confusing user experience.
https://bugzilla.gnome.org/show_bug.cgi?id=732443
Applications can call this to determine if they should an app menu.
This will be %FALSE on desktop environments that do not have an
application menu like the one in gnome-shell. It is %FALSE on Windows
and Mac OS.
Applications are completely free to totally ignore this API -- it is
only provided as a hint to help applications that may be interested in
supporting non-GNOME platforms with a more native 'look and feel'.
https://bugzilla.gnome.org/show_bug.cgi?id=722092
We were only setting the state transiently in ::draw, leading
to various drawing anomalies, such as labels not picking up
the appropriate color from BUTTON styles.
This is expected to happen on wayland and other platforms with no primary selection,
and just leads to the selected text being cleared after any attempt to change the
text selection itself through either mouse/keyboard.
This is expected to happen on wayland and other platforms with no primary selection,
and just leads to the selected text being cleared after any attempt to change the
text selection itself through either mouse/keyboard.
When there area explicitly added buttons in the action area,
we were trying to ensure that the action area is visible,
but failed, since we are now hiding the action_box. Fix it
by showing the action_box when things are left in the action
area.
We need to enclose paths containing $(BinDir) with double quotes as it
points to something like c:\foo\gtk+-x.yy.zz, which the copy command on
Windows does not like "+" in paths unless enclosed in quotes.
As the Visual Studio 2012/2013 are only slightly different from the Visual
Studio 2010 projects, we can provide support for them by using scripts to
copy the Visual Studio 2010 projects, and update the specific parts as
necessary.
Thus, there would be little maintenance overhead for these as only the 2010
projects need to be kept up-to-date as a result. This might change when we
do get the stack working with WinRT/Metro, but that's going to be another
totally different issue.
The stock icons are now built into the GTK+ DLL via resources, so don't
try to install the stock icons, and the icons don't reside in their former
positions anymore, causing messages indicating that the files cannot be
found.
This reverts commit 2e0ce67f8a.
Since g-i 1.40.0 we are using the .lib file(s) to determine the DLL(s) that
the introspection files should look for, instead of directly using the
DLL(s) directly, so it is no longer necessary to make copies of the GDK
.lib file to match the <namespace-name>-<namespace-version> convention when
we are building the introspection files for GdkWin32. Remove that from the
introspection build process as a result.
We don't set use-header-bar for message dialogs, since we
want the buttons in the action area, but we do want a nice
rounded csd titlebar. Add back the box that was used before
to achieve this, when appropriate.
Give GtkAboutDialog buttons in the action area instead of hard-coding
use-header-bar to TRUE. This is for environments which don't have the
Gtk/DialogsUseHeader xsetting turned on.
https://bugzilla.gnome.org/show_bug.cgi?id=730893
We use gtk_adjustment_enable_animation to enable animated
updates of the adjustments. Currently, this is enabled
unconditionally, and with a duration that is hardcoded.
https://bugzilla.gnome.org/show_bug.cgi?id=732376
Add a private API that lets widget opt-in to animated updates of
the adjustment value. When enabled, all calls to
gtk_adjustment_set_value will smoothly transition from the old
value to the new value, using a fixed easing function and a
configurable duration. The animation is tied to the frame clock
of the widget.
By implementing this in GtkAdjustment, we can enable animation
for both scrollbars and keybindings, which are often implemented
in the child widget of the scrolled window.
https://bugzilla.gnome.org/show_bug.cgi?id=732376
This makes it possible to look up icons in resources using
the icon theme api, and should be used as a replacement
for installing icons below $pkgdatadir/icons and adding
that location to the search path.
Make icon lookup from resources work without the extra hicolor
component in the path. It is redundant, since we always treat
builtin icons as part of hicolor anyway.
Otherwise, we get every icon twice. To switch between symbolic
and non-symbolic icons, this css fragment comes in handy:
* { -gtk-icon-style: symbolic; }
Grabbing on a non-toplevel might not do what we want it to do, since it
will go on the focused widget, not the grabbed widget. Since we don't
focus the widget before clicking on it, that means that putting the
focus somewhere else and then clicking on the accelerator editor will
freeze the app. Additionally, since it's a global system grab that can't
be exited except by a key press that we won't ever get, it effectively
locks up your system as well unless you know how to break the grab or
kill the app. Ouch.
Since doing a device grab on a non-toplevel is generally considered a
bad idea, just don't do it. Use a GtkInvisible and take a grab on that
instead.
When validating the style context, we are copying the animations
from one StyleValues instance to another, and cancel the old ones.
It turns out that sometimes the old and the new StyleValues are
the same, and in this case, we end up cancelling the animations
for good.
One case where breakage from this was observed is that the spinners
in gtk3-widget-factory stop spinning when you open and close a modal
dialog on page 2. This depends a bit on the window manager; the problem
can only be seen if opening the dialog causes a transition to backdrop.
This changes the calculation of activity mode progress in the
same way as was done in GtkProgressBar a while ago, and make it
smooth, using a tick callback.
We want to stop people from using configure events
entirely. GtkDrawingArea synthesizes a configure event, but we can just
make the only user of this functionality stop it, and correct the
documentation to not mention it.
GtkCheckButton sets a different initial value for this property without
actually changing the declared default, and then relies on change notification
to update other properties (such as xalign). This, combined with glades
insistance on putting default values into ui files creates a situation
where we can't remove the redundant notification for ::draw-indicator
without causing lots of checkboxes to suddenly have centered labels.
This was seen in gnome-terminal, evolution, and other applications.
Therefore, keep the extra notification for now. This can be revisited
when we clean up the button hierarchy.
Instead of code that internally does weird things, use the FLAT style
class if has-frame is FALSE and remove it otherwise.
Based on a patch by Benjamin Otte.
https://bugzilla.gnome.org/show_bug.cgi?id=732256
fixup entry
This commit makes button always draw background and frame.
Buttons with relief none get a new style class, FLAT, which
allows themes to style these buttons as they like.
We also (finally) mark GTK_RELIEF_HALF as deprecated. It
has never done anything different from GTK_RELIEF_NORMAL.
https://bugzilla.gnome.org/show_bug.cgi?id=732256
Translate shadow != None into the FRAME style class.
This doesn't change the style classes used for drawing,
it only sets the style class permanently instead of
saving and restoring in draw().
https://bugzilla.gnome.org/show_bug.cgi?id=732256
Translate shadow != None into the FRAME style class.
This doesn't change the style classes used for drawing,
it only sets the style class permanently instead of
saving and restoring in draw().
https://bugzilla.gnome.org/show_bug.cgi?id=732256
Since we have a paint clock, we shouldn't be sending out EXPOSE events
for OR windows inside the ALLOCATE cycle. The idea here was that we
would have to wait for a map to get an OR window to paint to, but since
then this has been abstracted away inside GDK and the paint clock.
We already update the grip position in _gtk_window_set_allocation, which
is done through the size_allocate above. Receiving a ConfigureNotify
also won't ever change a grip's visibility, so there's no point in
refreshing it.
We want to stop people from using configure events
entirely. GtkDrawingArea synthesizes a configure event, but we can just
make the only user of this functionality stop it, and correct the
documentation to not mention it.
The template documentation is lacking inlined examples on how to use the
templates API, like binding children and callbacks. This makes looking
for best practices a bit harder than it ought to be, for a feature this
useful.
These non-standard icons were dropped from Adwaita. Eventually,
the icon-browser code should be changed to show all standard
icons + whatever is actually in the icon theme, instead of
hardcoding a list of non-standard names.
If the event triggers GtkGesture::begin, and the handler ends up resetting
the gesture (say, due to taking a grab somewhere else within the handler),
still take the event as "managed", as it actually triggered recognition,
even if just to end abruptly.
https://bugzilla.gnome.org/show_bug.cgi?id=731711
Prevent a segfault in unknown circumstances, and break the ignore
deprecations wrapper out from the if statement so that we don't
cover too much ground by accident.
This reverts commit b875572f2a.
Apps like Abiword, gnumeric and gnome-chess, and toolkits like
ClutterGTK were all using this for various purposes, and this made them
break. Bring back this feature for now.
It still won't work under Wayland.
Apps had quite a bit of difficulty getting used to the new rules.
While we weren't expecting anything too deadly, it seemed that
gnumeric and Abiword both used gdk_cairo_create like this.
If a window both has an impl and its impl_window is of type offscreen,
that must mean that it is the offscreen window, and the impl window is
itself. We can reduce the indirection here and make it more clear.
This functionality is only exercised by gnome-shell, currently.
Therefore, forgetting to copy a field here means an instant
gnome-shell crash :-(. More tests needed.
Recent changes made it a breaking mistake to install symbolic icons
of the wrong size into a theme directory, or into the legacy unthemed
icon location.
Since this change affects many apps, do the extra work to keep these
icons working, but emit warnings, in the hope that this will lead to
cleaning up the mess over time.
The -gtk-icontheme() function not have any automatism for
symbolic or rtl variants built-in, instead, we expect the theme
to use selectors to provide the right icon for each situation.
The recent icon theme scaling changes make the code more
sensitive to mis-sized icons (e.g. application icons in
the app chooser). A single row whose size gets blown out
of proportion by a big icon is never wanted in a list.
We can avoid this situation by telling GtkIconHelper to
force-scale the pixbuf to the requested size.
When force_scale_pixbuf is set, the icon helper will scale the
icon to the requested size (either the pixel size, or the resolved
icon size), so we can just as well instruct the icon theme code
to do the scaling for us.
Reuse the scale information that we have from loading icons
normally, when loading a symbolic icon, so that we apply the
same size constraints.
This commit assumes that svgs have the nominal size of the
directory they are in, which will be true for all current
symbolic icons.
Previously, we were taking thresholds and min/max sizes into
account when choosing the best theme dir, but when it came
to loading the icon, we always scaled icons from scalable
directories all the way, ignoring the min/max size limits.
This commit changes things around so that we now load icons
in Threshold directories at their nominal size, and scale
icons in Scalable directories only up to the specified limits.
To override this and keep the previous behaviour of scaling
all the way to the desired size, use the GTK_ICON_THEME_FORCE_SIZE
flag.
Since the Win32 code never actually called InvalidateRgn or used the
Win32 update area at all, that meant the only thing that could possibly
invalidate the window was the Win32 window manager as part of scrolling
or resizing, which would also send it a WM_PAINT message.
But the WM_PAINT handling called BeginPaint / EndPaint, which clears the
update area completely! We also draw out-of-band, not directly when
handling WM_PAINT, so there's no way that the update area inside the
Win32 WM would match our local one.
There is no possible way that this queue_antiexpose implementation could
do anything. Remove it.
We removed the parameter from callers and from the implementation, but
not from the signature up top. I didn't notice because the branch I was
working on removed the signature entirely.
This code is only called with the current paint region as its argument.
Instead of having to copy it and do a no-op intersect against itself,
just use the current paint directly.
There's nothing better we can do for this case, now that we always
redirect drawing to a temporary pixmap. Maybe since this is already
X11-specific code, we should just do everything with Xlib directly.
cairo_surface_create_for_rectangle takes a ref on the parent surface,
so we need to drop ours.
Rename get_window_surface to ref_window_surface to make the code more
clear and to stop this error from happening again.
Previously, each begin_paint_region added to a stack of current paints,
and when end_paint was called, the paint was popped off of the stack and
the surface was composited into the parent paint surface.
However, the code was broken in the case of a backend like Wayland which
didn't keep track of nested calls and simply wiped and returned the
native impl backing surface every time.
Since this feature is flat out unused by GTK+ and we don't want to
really support tricksy things like these for other clients, just remove
the feature. If somebody does call begin_paint_region more than once,
warn and return without doing anything.
Traditionally, the way painting was done in GTK+ was with the
"expose-event" handler, where you'd use GDK methods to do drawing on
your surface. In GTK+ 2.24, we added cairo support with gdk_cairo_create,
so you could paint your graphics with cairo.
Since then, we've added client-side windows, double buffering, the paint
clock, and various other enhancements, and the modern way to do drawing
is to connect to the "draw" signal on GtkWidget, which hands you a
cairo_t. To do double-buffering, the cairo_t we hand you is actually on
a secret surface, not the actual backing store of the window, and when
the draw handler completes we blit it into the main backing store
atomically.
The code to do this is with the APIs gdk_window_begin_paint_region,
which creates the temporary surface, and gdk_window_end_paint which
blits it back into the backing store. GTK+'s implementation of the
"draw" signal uses these APIs.
We've always sort-of supported people calling gdk_cairo_create
"outside" of a begin_paint / end_paint like old times, but then you're
not getting the benefit of double-buffering, and it's harder for GDK to
optimize.
Additionally, newer backends like Mir and Wayland can't actually support
this model, since they're based on double-buffering and swapping buffers
at various points in time. If we hand you a random cairo_t, we have no
idea when is a good time to swap.
Remove support for this.
This is technically a GDK API break: a warning is added in cases where
gdk_cairo_create is called outside of a paint cycle, and the returned
surface is a dummy that won't ever be composited back onto the main
surface. Testing with complex applications like Ardour didn't produce
any warnings.
gtk_widget_set_double_buffered is now deprecated, and we don't support
non-double-buffered widgets. This means that under normal circumstances,
paints are never outside of a begin_paint / end_paint sequence, which
natively-double-buffered backends like Wayland can't possibly support.
Weston releases buffers almost immediately after they're done, which
means that GTK+ doesn't use a temporary surface and instead paints
directly onto the SHM backing store that Weston will use.
Normally, after painting to the temporary surface, GTK+ *replaces*
the existing backing surface with CAIRO_OPERATOR_SOURCE. However,
if we immediately paint to the backing surface, it might have junk
from the last paint in it. So clear out the backing surface whenever
somebody calls begin_paint_region().
Maybe we should just always use the temporary surface like the X11
codepath, since that prevents us from having to do weird things like
this, but oh well.
Add /org/gtk/libgtk/icons as a resource path, and ensure
that we always parse an index.theme file for hicolor which
makes the builtin icons available as part of the hicolor theme.
We add a new API, gtk_icon_theme_add_resource_path, which
can be used to add resource path as a base location for
icon theme content, similar to gtk_icon_theme_append_search_path.
We're going to require a complete icon theme, and we have
a test that checks for all the icons we use, so there is
no need to include all these fallback icons.
Regions are done in a very non-css way. They don't fit the DOM in that
they don't integrate into the CSS tree and they have very weird matching
behavior in selectors.
So I'm deprecating them now. GtkNotebook and GtkTreeview will continue
to use them and as long as they do, we can't remove the code for it.
But once those are ported it might be safe to remove the code as it will
clean up lots of places in the code by quite a bit.
wl_surfaces can't switch roles, so destroying the xdg_surface but not
the wl_surface means that we could get an error when trying to re-map
the surface.
We could fix this by not destroying the xdg resource and only do it at
finalization time, but it's just as easy to just create a new wl_surface.
Since the xdg roles are a special case of the surface, some compositors
like Weston destroy them automatically when the wl_surface is destroyed.
Thus, we need to destroy these first.
The Wayland compositor is completely allowed to send us configure
events for the same size, and this validly happens if we're changing
states. Fizzle these out.
The rubberband rendering code was assuming that we just have
a 1-pixel border and the rest of the rubberband is uniform.
That is not a safe assumption to make with css-styled
rubberbands, so remove it.
The rubberband rendering code was assuming that we just have
a 1-pixel border and the rest of the rubberband is uniform.
That is not a safe assumption to make with css-styled
rubberbands, so remove it.
Paradoxically, we were loading svgs at the nominal size when
FORCE_SIZE is specified, while scaling them exactly when it
isn't.
../build/win32/vs10/gtk.vcxproj
When we switched the default for gtk-update-icon-cache to
not include image data, we should have thought about the
builtin icons. For them, we rely on image data being included.
This made the notify test fail in gnome-continuous, where we
build from git and always regenerate the builtin cache.
This pushes the initialization of is_svg to an earlier point
when the GtkIconInfo is created. This is needed because an icon
info doesn't necessarily always have a filename that we can later
extract the suffix from. For instance, builtin icons have NULL
filename.
https://bugzilla.gnome.org/show_bug.cgi?id=721895
Copy the icons in stock_icons accordingly, so that the built-in icons can
be found by GTK, as it seems that not all of them are built into
gtkbuiltincache.h.
We want to have the "-gtk-" prefix for our custom CSS properties. But
we also want to parse names starting with a "-" as style properties.
So make sure that "-gtk-" is treated like a normal property and we emit
errors when somebody uses it wrong.
This is to catch errors with people typing
-gtk-iconsource: none;
instead of the correct
-gtk-icon-source: none;
We want to make sure that the submenu action is changed back to FALSE
_after_ the menu item has been activated. This prevents the menu
teardown handler from deleting the menu item before it can be activated.
Unfortunately, GtkMenuShell emits "hide" before the item activation.
This is probably done to prevent the application from doing things like
showing dialogs when the menu is still holding the grab.
In the case where we are doing an activate, set a boolean flag on each
of the open menus (following the parent stack) indicating that we'll be
emitting another signal soon (selection done). If that flag is set, we
defer the setting of the submenu action until we receive the second
signal.
https://bugzilla.gnome.org/show_bug.cgi?id=729820
That test is not working anymore by design since commit 57c4f01e.
It was introduced pre-3.0.0 in commit 12d6b588 and the feature was never
utilized. So it seems safe to just remove the test.
When duplicating the icon_info, we forgot to set is_svg. This meant that
any application that used gtk_icon_info_load_icon_async wouldn't have
is_svg set properly.
This fixes blurry icons in the gnome-shell app picker.
TextView border windows are internal windows used to draw on the gutter
of the textview (e.g. line numbers). The test uses the gmodule hook to
programmatically draw on the border-windows at each side of the textview
and compares the result with 3x3 grid of labels.
add a reftest that checks GtkTextView text margin property comparing
with the normal margin added to the widget (they are the same when there
is nothing drawn in the gutter like line numbers etc).
Previously GtkMenuTracker tried to access "gtk_menu_tracker_item_get_is_visible",
but the correct getter is "_gtk_menu_tracker_item_is_visible". This commit
corrects this reference
https://bugzilla.gnome.org/show_bug.cgi?id=731430
Since large images are in the icon cache, and apps don't tend to use that
many icons anymore, simply don't include image data and instead make apps
load files from disk. Additionally, since they're stored in GdkPixbuf data,
that means that we have to first convert them either to a cairo_surface_t,
which requires converting pixel data to be premulitplied, or an OpenGL
texture, which requires a whole GPU upload anyway.
So, even with the icon cache, the goal of icons through zero-copy, mmap()'d
data from disk just isn't doable with the icon cache format we have. The
icon cache on my disk is nearing 100MB, since we include a bunch of
high-resolution application icons, that I doubt would be used by apps at all.
Removing this inefficient pixel data makes memory usage for all applications
go down, with no speed loss.
The icon cache also, however, has an index of what icons are in each folder,
which prevents a readdir() and allows GTK+ to know what icon is where without
having to do a bunch of stat(); calls. Keeping this data is good for GTK+,
so we should still keep the index.
It doesn't make sense to remove any code for mapping pixel data from the icon
cache. There's a plan in the works to have a symbolic icon cache that does
pixel math on 16x16 icons to prevent slow SVG rendering. 16x16 pixels are
fairly small, and such images are flat colors, which should compress easily,
so the icon cache would be worthwhile here. So let's keep the code around
in preparation for that case.
https://bugzilla.gnome.org/show_bug.cgi?id=721895
This changes makes svg icons go through the same scale calculation
code as png icons. As a consequence, an svg that is put into the
32x32 directory will actually be loaded at size 32, even if it
gets requested at a bigger size. This will let us avoid giant
spinners.
https://bugzilla.gnome.org/show_bug.cgi?id=731658
Having the same, usable, default appearance acroll platforms
trumps having a more-or-less working native theme. The default
will be Adwaita on all platforms. The native ms-windows theme
is of course still available.
Making gtk.gresource.xml generated was causing a problem for
srcdir!=builddir builds from git. Builds from tarballs are
not affected, because the tarball contains the generated file.
cat $(top_srcdir)/build/win32/vs10/$(MSVC_SLN).sln | sed 's/11\.00/$(MSVC_FORMAT_VER)\.00/g' | sed 's/2010/$(MSVC_VER_LONG)/g' > $(top_builddir)/build/win32/vs$(MSVC_VER)/$(MSVC_SLN).sln
cat $(top_srcdir)/build/win32/vs10/README.txt | sed 's/vs10/vs$(MSVC_VER)/g' | sed 's/VS10/VS$(MSVC_VER)/g' > $(top_builddir)/build/win32/vs$(MSVC_VER)/README.txt
create_vcxproj:
for F in `(cd $(top_builddir)/build/win32/vs10 && ls *.vcxproj)`; do \
case $$F in \
*) cat $(top_builddir)/build/win32/vs10/$$F | sed 's/v100/v$(MSVC_VER)0/g' > $(top_builddir)/build/win32/vs$(MSVC_VER)/$$F \
;; \
esac; \
done
create_props:
for F in `(cd $(top_builddir)/build/win32/vs10 && ls *.props)`; do \
case $$F in \
*) cat $(top_builddir)/build/win32/vs10/$$F | sed 's/<VSVer>10<\/VSVer>/<VSVer>$(MSVC_VER)<\/VSVer>/g' > $(top_builddir)/build/win32/vs$(MSVC_VER)/$$F \
add_context(win,"volume","Volume","Icons related to audio input and output volume");
add_icon(win,"audio-volume-high","The icon used to indicate high audio volume","volume");
add_icon(win,"audio-volume-low","The icon used to indicate low audio volume","volume");
add_icon(win,"audio-volume-medium","The icon used to indicate medium audio volume","volume");
add_icon(win,"audio-volume-muted","The icon used to indicate the muted state for audio playback","volume");
add_icon(win,"microphone-sensitivity-high","The icon used to indicate high microphone sensitivity","volume");
add_icon(win,"microphone-sensitivity-low","The icon used to indicate low microphone sensitivity","volume");
add_icon(win,"microphone-sensitivity-medium","The icon used to indicate medium microphone sensitivity","volume");
add_icon(win,"microphone-sensitivity-muted","The icon used to indicate that a microphone is muted","volume");
add_context(win,"multimedia","Multimedia","Icons related to playback of media");
add_icon(win,"media-playlist-repeat","The icon for the repeat mode of a media player","multimedia");
add_icon(win,"media-playlist-repeat-song","The icon for repeating a song in a media player","multimedia");
add_icon(win,"media-playlist-shuffle","The icon for the shuffle mode of a media player","multimedia");
add_icon(win,"media-playlist-consecutive","The icon for consecutive mode of a media player","multimedia");
add_icon(win,"media-skip-backward","The icon for the skip backward action of a media player","multimedia");
add_icon(win,"media-seek-backward","The icon for the seek backward action of a media player","multimedia");
add_icon(win,"media-playback-start","The icon for the start playback action of a media player","multimedia");
add_icon(win,"media-seek-forward","The icon for the seek forward action of a media player","multimedia");
add_icon(win,"media-skip-forward","The icon for the skip forward action of a media player","multimedia");
add_icon(win,"media-playback-stop","The icon for the stop action of a media player","multimedia");
add_icon(win,"media-playback-pause","The icon for the pause action of a media player","multimedia");
add_icon(win,"media-eject","The icon for the eject action of a media player or file manager","multimedia");
add_icon(win,"media-record","The icon for the record action of a media application","multimedia");
add_icon(win,"media-view-subtitles","The icon used to show subtitles in a media player","multimedia");
add_context(win,"network","Network","Icons related to network status");
add_icon(win,"network-transmit-receive","The icon used data is being both transmitted and received simultaneously, while the computing device is connected to a network","network");
add_icon(win,"network-transmit","The icon used when data is being transmitted, while the computing device is connected to a network","network");
add_icon(win,"network-receive","The icon used when data is being received, while the computing device is connected to a network","network");
add_icon(win,"network-idle","The icon used when no data is being transmitted or received, while the computing device is connected to a network","network");
add_icon(win,"network-error","The icon used when an error occurs trying to intialize the network connection of the computing device","network");
add_icon(win,"network-offline","The icon used when the computing device is disconnected from the network","network");
add_context(win,"weather","Weather","Icons about weather conditions");
add_icon(win,"weather-clear","The icon used while the weather for a region is “clear skies”","weather");
add_icon(win,"weather-clear-night","The icon used while the weather for a region is “clear skies” during the night","weather");
add_icon(win,"weather-few-clouds","The icon used while the weather for a region is “partly cloudy”","weather");
add_icon(win,"weather-few-clouds-night","The icon used while the weather for a region is “partly cloudy” during the night","weather");
add_icon(win,"weather-fog","The icon used while the weather for a region is “foggy”","weather");
add_icon(win,"weather-overcast","The icon used while the weather for a region is “overcast”","weather");
add_icon(win,"weather-severe-alert","The icon used while a sever weather alert is in effect for a region","weather");
add_icon(win,"weather-showers","The icon used while rain showers are occurring in a region","weather");
add_icon(win,"weather-showers-scattered","The icon used while scattered rain showers are occurring in a region","weather");
add_icon(win,"weather-snow","The icon used while snow showers are occurring in a region","weather");
add_icon(win,"weather-storm","The icon used while storms are occurring in a region","weather");
add_context(win,"navigation","Navigation","Icons for navigation in the user interface of a program");
add_icon(win,"go-first","The icon for the go to the first item in a list","navigation");
add_icon(win,"go-previous","The icon for the go to the previous item in a list","navigation");
add_icon(win,"go-next","The icon for the go to the next item in a list","navigation");
add_icon(win,"go-last","The icon for the go to the last item in a list","navigation");
add_icon(win,"go-bottom","The icon for the go to bottom of a list","navigation");
add_icon(win,"go-down","The icon for the go down in a list","navigation");
add_icon(win,"go-up","The icon for the go up in a list","navigation");
add_icon(win,"go-top","The icon for the go to the top of a list","navigation");
add_icon(win,"go-home","The icon for the go to home location","navigation");
add_icon(win,"go-jump","The icon for the jump to action","navigation");
add_context(win,"editing","Editing","Icons related to editing a document");
add_icon(win,"format-indent-less","The icon for the decrease indent formatting action","editing");
add_icon(win,"format-indent-more","The icon for the increase indent formatting action","editing");
add_icon(win,"format-justify-center","The icon for the center justification formatting action","editing");
add_icon(win,"format-justify-fill","The icon for the fill justification formatting action","editing");
add_icon(win,"format-justify-left","The icon for the left justification formatting action","editing");
add_icon(win,"format-justify-right","The icon for the right justification action","editing");
add_icon(win,"format-text-direction-ltr","The icon for the left-to-right text formatting action","editing");
add_icon(win,"format-text-direction-rtl","The icon for the right-to-left formatting action","editing");
add_icon(win,"format-text-bold","The icon for the bold text formatting action","editing");
add_icon(win,"format-text-italic","The icon for the italic text formatting action","editing");
add_icon(win,"format-text-underline","The icon for the underlined text formatting action","editing");
add_icon(win,"format-text-strikethrough","The icon for the strikethrough text formatting action","editing");
add_icon(win,"edit-clear","The icon for the clear action","editing");
add_icon(win,"edit-clear-all","","editing");
add_icon(win,"edit-copy","The icon for the copy action","editing");
add_icon(win,"edit-cut","The icon for the cut action","editing");
add_icon(win,"edit-delete","The icon for the delete action","editing");
add_icon(win,"edit-find-replace","The icon for the find and replace action","editing");
add_icon(win,"edit-paste","The icon for the paste action","editing");
add_icon(win,"edit-redo","The icon for the redo action","editing");
add_icon(win,"edit-select-all","The icon for the select all action","editing");
add_icon(win,"edit-select","","editing");
add_icon(win,"edit-undo","The icon for the undo action","editing");
add_icon(win,"document-properties","The icon for the action to view the properties of a document in an application","editing");
add_icon(win,"document-new","The icon used for the action to create a new document","editing");
add_icon(win,"document-open","The icon used for the action to open a document","editing");
add_icon(win,"document-open-recent","The icon used for the action to open a document that was recently opened","editing");
add_icon(win,"document-save","The icon for the save action. Should be an arrow pointing down and toward a hard disk","editing");
add_icon(win,"document-save-as","The icon for the save as action","editing");
add_icon(win,"document-send","The icon for the send action. Should be an arrow pointing up and away from a hard disk","editing");
add_icon(win,"document-page-setup","The icon for the page setup action of a document editor","editing");
add_icon(win,"changes-allow","","other");
add_icon(win,"changes-prevent","","other");
add_icon(win,"object-flip-horizontal","The icon for the action to flip an object horizontally","editing");
add_icon(win,"object-flip-vertical","The icon for the action to flip an object vertically","editing");
add_icon(win,"object-rotate-left","The icon for the rotate left action performed on an object","editing");
add_icon(win,"object-rotate-right","The icon for the rotate rigt action performed on an object","editing");
add_icon(win,"insert-image","The icon for the insert image action of an application","editing");
add_icon(win,"insert-link","The icon for the insert link action of an application","editing");
add_icon(win,"insert-object","The icon for the insert object action of an application","editing");
add_icon(win,"insert-text","The icon for the insert text action of an application","editing");
add_icon(win,"accessories-text-editor","The icon used for the desktop's text editing accessory program","editing");
add_context(win,"view","View Controls","Icons for view controls in a user interface");
add_icon(win,"view-list","The icon used for “List“ view mode","view");
add_icon(win,"view-grid","The icon used for “Grid“ view mode (as opposed to “List“)","view");
add_icon(win,"view-fullscreen","The icon used for the “Fullscreen” item in the application's “View” menu","view");
add_icon(win,"view-restore","The icon used by an application for leaving the fullscreen view, and returning to a normal windowed view","view");
add_icon(win,"zoom-fit-best","The icon used for the “Best Fit” item in the application's “View” menu","view");
add_icon(win,"zoom-in","The icon used for the “Zoom in” item in the application's “View” menu","view");
add_icon(win,"zoom-out","The icon used for the “Zoom Out” item in the application's “View” menu ","view");
add_icon(win,"zoom-original","The icon used for the “Original Size” item in the application's “View” menu","view");
add_icon(win,"view-continuous","The icon used for a continuous view mode","view");
add_icon(win,"view-paged","The icon used for a paged view mode (as opposed to continuous)","view");
add_icon(win,"view-dual","The icon used for a side-by-side view of paginated content","view");
add_icon(win,"view-wrapped","The icon used to indicate a wrap-around to the beginning","view");
add_context(win,"calendar","Calendar, Tasks and Alarms","Icons related to calendars, tasks and alarms");
add_icon(win,"task-due","The icon used when a task is due soon","calendar");
add_icon(win,"task-past-due","The icon used when a task that was due, has been left incomplete","calendar");
add_icon(win,"appointment-soon","The icon used when an appointment will occur soon","calendar");
add_icon(win,"appointment-missed","The icon used when an appointment was missed","calendar");
add_icon(win,"alarm","The icon used for alarms when a task or appointment is due","calendar");
add_context(win,"communication","Communication","Icons related email, phone calls, IM and other forms of communication");
add_icon(win,"mail-unread","The icon used for an electronic mail that is unread","communication");
add_icon(win,"mail-read","The icon used for an electronic mail that is read","communication");
add_icon(win,"mail-replied","The icon used for an electronic mail that has been replied to","communication");
add_icon(win,"mail-attachment","The icon used for an electronic mail that contains attachments","communication");
add_icon(win,"mail-mark-important","The icon for the mark as important action of an electronic mail application","communication");
add_icon(win,"mail-send","The icon for the send action of an electronic mail application","communication");
add_icon(win,"mail-send-receive","The icon for the send and receive action of an electronic mail application","communication");
add_icon(win,"call-start","The icon used for initiating or accepting a call","communication");
add_icon(win,"call-stop","The icon used for stopping a current call","communication");
add_icon(win,"call-missed","The icon used to show a missed call","communication");
add_icon(win,"user-available","The icon used when a user on a chat network is available to initiate a conversation with","communication");
add_icon(win,"user-offline","The icon used when a user on a chat network is not available","communication");
add_icon(win,"user-idle","The icon used when a user on a chat network has not been an active participant in any chats on the network, for an extended period of time","communication");
add_icon(win,"user-invisible","The icon used when a user is on a chat network, but is invisible to others","communication");
add_icon(win,"user-busy","The icon used when a user is on a chat network, and has marked himself as busy","communication");
add_icon(win,"user-away","The icon used when a user on a chat network is away from their keyboard and the chat program","communication");
add_icon(win,"user-status-pending","The icon used when the current user status on a chat network is not known","communication");
add_context(win,"devices","Devices and Media","Icons for devices and media");
add_icon(win,"audio-input-microphone","The icon used for the microphone audio input device","devices");
add_icon(win,"camera-web","The fallback icon for web cameras","devices");
add_icon(win,"camera-photo","The icon used for a digital still camera devices","devices");
add_icon(win,"input-keyboard","The icon used for the keyboard input device","devices");
add_icon(win,"printer","The icon used for a printer device","devices");
add_icon(win,"video-display","The icon used for the monitor that video gets displayed to","devices");
add_icon(win,"computer","The icon used for the computing device as a whole","devices");
add_icon(win,"media-optical","The icon used for physical optical media such as CD and DVD","devices");
add_icon(win,"phone","The icon used for phone devices which support connectivity to the PC, such as VoIP, cellular, or possibly landline phones","devices");
add_icon(win,"input-dialpad","The icon used for dialpad input devices","devices");
add_icon(win,"input-touchpad","The icon used for touchpad input devices","devices");
add_icon(win,"scanner","The icon used for a scanner device","devices");
add_icon(win,"audio-card","The icon used for the audio rendering device","devices");
add_icon(win,"input-gaming","The icon used for the gaming input device","devices");
add_icon(win,"input-mouse","The icon used for the mousing input device","devices");
add_icon(win,"multimedia-player","The icon used for generic multimedia playing devices","devices");
add_icon(win,"audio-headphones","The icon used for headphones","devices");
add_icon(win,"audio-headset","The icon used for headsets","devices");
add_icon(win,"display-projector","The icon used for projectors","devices");
add_icon(win,"media-removable","The icon used for generic removable media","devices");
add_icon(win,"printer-network","The icon used for printers which are connected via the network","devices");
add_icon(win,"audio-speakers","The icon used for speakers","devices");
add_icon(win,"camera-video","The fallback icon for video cameras","devices");
add_icon(win,"drive-optical","The icon used for optical media drives such as CD and DVD","devices");
add_icon(win,"drive-removable-media","The icon used for removable media drives","devices");
add_icon(win,"input-tablet","The icon used for graphics tablet input devices","devices");
add_icon(win,"network-wireless","The icon used for wireless network connections","devices");
add_icon(win,"network-wired","The icon used for wired network connections","devices");
add_icon(win,"media-floppy","The icon used for physical floppy disk media","devices");
add_icon(win,"media-flash","The fallback icon used for flash media, such as memory stick and SD","devices");
add_context(win,"contenttypes","Content Types","Icons for different types of data, such as audio or image files");
add_icon(win,"audio-x-generic","The icon used for generic audio file types","contenttypes");
add_icon(win,"folder","The standard folder icon used to represent directories on local filesystems, mail folders, and other hierarchical groups","contenttypes");
add_icon(win,"text-x-generic","The icon used for generic text file types","contenttypes");
add_icon(win,"video-x-generic","The icon used for generic video file types","contenttypes");
add_icon(win,"x-office-calendar","The icon used for generic calendar file types","contenttypes");
add_context(win,"emotes","Emotes","Icons for emotions that are expressed through text chat applications such as :-) or :-P in IRC or instant messengers");
add_icon(win,"face-angel","The icon used for the 0:-) emote","emotes");
add_icon(win,"face-angry","The icon used for the X-( emote","emotes");
add_icon(win,"face-cool","The icon used for the B-) emote","emotes");
add_icon(win,"face-crying","The icon used for the :'( emote","emotes");
add_icon(win,"face-devilish","The icon used for the >:-) emote","emotes");
add_icon(win,"face-embarrassed","The icon used for the :-[ emote","emotes");
add_icon(win,"face-kiss","The icon used for the :-* emote","emotes");
add_icon(win,"face-laugh","The icon used for the :-)) emote","emotes");
add_icon(win,"face-monkey","The icon used for the :-(|) emote","emotes");
add_icon(win,"face-plain","The icon used for the :-| emote","emotes");
add_icon(win,"face-raspberry","The icon used for the :-P emote","emotes");
add_icon(win,"face-sad","The icon used for the :-( emote","emotes");
add_icon(win,"face-sick","The icon used for the :-& emote","emotes");
add_icon(win,"face-smile","The icon used for the :-) emote","emotes");
add_icon(win,"face-smile-big","The icon used for the :-D emote","emotes");
add_icon(win,"face-smirk","The icon used for the :-! emote","emotes");
add_icon(win,"face-surprise","The icon used for the :-0 emote","emotes");
add_icon(win,"face-tired","The icon used for the |-) emote","emotes");
add_icon(win,"face-uncertain","The icon used for the :-/ emote","emotes");
add_icon(win,"face-wink","The icon used for the ;-) emote","emotes");
add_icon(win,"face-worried","The icon used for the :-S emote","emotes");
add_icon(win,"face-yawn","","emotes");
add_context(win,"general","General","Generally useful icons that don't fit in a particular category");
add_icon(win,"edit-find","The icon for generic search actions","general");
add_icon(win,"content-loading","The icon used to indicate that content is loading","general");
add_icon(win,"open-menu","The icon used for a menu button in the header bar","general");
add_icon(win,"view-more","The icon used for a “View More“ action","general");
add_icon(win,"tab-new","The icon used for a “New Tab“ action","general");
add_icon(win,"bookmark-new","The icon used for creating a new bookmark","general");
add_icon(win,"mark-location","The icon used to mark a location on a map","general");
add_icon(win,"find-location","The icon used for a “Search location“ action","general");
add_icon(win,"send-to","The icon used for a “Send to“ action","general");
add_icon(win,"object-select","The icon used for generic selection actions","general");
add_icon(win,"window-close","The icon used for actions that close a view, such as window or tab close button","general");
add_icon(win,"view-refresh","The icon used for the “Refresh” item in the application's “View” menu","general");
add_icon(win,"process-stop","The icon used for the “Stop” action in applications with actions that may take a while to process, such as web page loading in a browser","general");
add_icon(win,"action-unavailable","The icon used to indicate that an action is currently unavailable, such as “Pause“ when no media is playing","general");
add_icon(win,"document-print","The icon for the print action of an application","general");
add_icon(win,"printer-printing","The icon used while a print job is successfully being spooled to a printing device","general");
add_icon(win,"printer-warning","The icon used when a recoverable problem occurs while attempting to printing","general");
add_icon(win,"printer-error","The icon used when an error occurs while attempting to print","general");
add_icon(win,"dialog-information","The icon used when a dialog is opened to give information to the user that may be pertinent to the requested action","general");
add_icon(win,"dialog-question","The icon used when a dialog is opened to ask a simple question of the user","general");
add_icon(win,"dialog-warning","The icon used when a dialog is opened to warn the user of impending issues with the requested action","general");
add_icon(win,"dialog-password","The icon used when a dialog requesting the authentication credentials for a user is opened","general");
add_icon(win,"dialog-error","The icon used when a dialog is opened to explain an error condition to the user","general");
add_icon(win,"list-add","The icon for the add to list action","general");
add_icon(win,"list-remove","The icon for the remove from list action","general");
add_icon(win,"non-starred","The icon used to indicate that an object is not 'starred'","general");
add_icon(win,"semi-starred","The icon used to indicate that an object has is 'half-starred'","general");
add_icon(win,"starred","The icon used to indicate that an object is 'starred'","general");
add_icon(win,"star-new","The used for the “New Star“ action","general");
add_icon(win,"security-low","The icon used to indicate that the security level of a connection is presumed to be insecure, either by using weak encryption, or by using a certificate that the could not be automatically verified, and which the user has not chosent to trust","general");
add_icon(win,"security-medium","The icon used to indicate that the security level of a connection is presumed to be secure, using strong encryption, and a certificate that could not be automatically verified, but which the user has chosen to trust","general");
add_icon(win,"security-high","The icon used to indicate that the security level of a connection is known to be secure, using strong encryption and a valid certificate","general");
add_icon(win,"user-trash","The icon for the user's “Trash” place in the file system","other");
add_icon(win,"user-trash-full","The icon for the user's “Trash” in the file system, when there are items in the “Trash” waiting for disposal or recovery","general");
add_icon(win,"emblem-system","The icon used as an emblem for directories that contain system libraries, settings, and data","general");
add_icon(win,"avatar-default","The generic avatar icon, which is used to represent a user that doesn't have a personalized avatar","general");
add_icon(win,"emblem-synchronizing","The icon used as an emblem to indicate that a a synchronizing operation is in process","general");
add_icon(win,"emblem-shared","The icon used as an emblem for files and directories that are shared to other users","general");
add_icon(win,"folder-download","The icon representing the location in the file system where downloaded files are stored","general");
add_icon(win,"help-browser","The icon used for the desktop's help browsing application","general");
add_context(win,"other","Other","Icons which have may be too specialized and not of general interest");
add_icon(win,"view-sort-ascending","The icon used for the “Sort Ascending” item in the application's “View” menu, or in a button for changing the sort method for a list","other");
add_icon(win,"view-sort-descending","The icon used for the “Sort Descending” item in the application's “View” menu, or in a button for changing the sort method for a list","other");
add_icon(win,"document-revert","The icon for the action of reverting to a previous version of a document","other");
add_icon(win,"address-book-new","The icon used for the action to create a new address book","other");
add_icon(win,"application-exit","The icon used for exiting an application. Typically this is seen in the application's menus as File->Quit","other");
add_icon(win,"appointment-new","The icon used for the action to create a new appointment in a calendaring application","other");
add_icon(win,"contact-new","The icon used for the action to create a new contact in an address book application","other");
add_icon(win,"document-print-preview","The icon for the print preview action of an application","other");
add_icon(win,"folder-new","The icon for creating a new folder","other");
add_icon(win,"help-about","The icon for the About item in the Help menu","other");
add_icon(win,"help-contents","The icon for Contents item in the Help menu","other");
add_icon(win,"help-faq","The icon for the FAQ item in the Help menu","other");
add_icon(win,"list-remove-all","","other");
add_icon(win,"mail-forward","The icon for the forward action of an electronic mail application","other");
add_icon(win,"mail-mark-junk","The icon for the mark as junk action of an electronic mail application","other");
add_icon(win,"mail-mark-notjunk","The icon for the mark as not junk action of an electronic mail application","other");
add_icon(win,"mail-mark-read","The icon for the mark as read action of an electronic mail application","other");
add_icon(win,"mail-mark-unread","The icon for the mark as unread action of an electronic mail application","other");
add_icon(win,"mail-message-new","The icon for the compose new mail action of an electronic mail application","other");
add_icon(win,"mail-reply-all","The icon for the reply to all action of an electronic mail application","other");
add_icon(win,"mail-reply-sender","The icon for the reply to sender action of an electronic mail application","other");
add_icon(win,"pan-down","","other");
add_icon(win,"pan-end","","other");
add_icon(win,"pan-start","","other");
add_icon(win,"pan-up","","other");
add_icon(win,"system-lock-screen","The icon used for the “Lock Screen” item in the desktop's panel application","other");
add_icon(win,"system-log-out","The icon used for the “Log Out” item in the desktop's panel application","other");
add_icon(win,"system-run","The icon used for the “Run Application...” item in the desktop's panel application","other");
add_icon(win,"system-search","The icon used for the “Search” item in the desktop's panel application","other");
add_icon(win,"system-reboot","The icon used for the “Reboot” item in the desktop's panel application","other");
add_icon(win,"system-shutdown","The icon used for the “Shutdown” item in the desktop's panel application","other");
add_icon(win,"tools-check-spelling","The icon used for the “Check Spelling” item in the application's “Tools” menu","other");
add_icon(win,"window-maximize","","other");
add_icon(win,"window-minimize","","other");
add_icon(win,"window-restore","","other");
add_icon(win,"window-new","The icon used for the “New Window” item in the application's “Windows” menu","other");
add_icon(win,"accessories-calculator","The icon used for the desktop's calculator accessory program","other");
add_icon(win,"accessories-character-map","The icon used for the desktop's international and extended text character accessory program","other");
add_icon(win,"accessories-dictionary","The icon used for the desktop's dictionary accessory program","other");
add_icon(win,"multimedia-volume-control","The icon used for the desktop's hardware volume control application","other");
add_icon(win,"preferences-desktop-accessibility","The icon used for the desktop's accessibility preferences","other");
add_icon(win,"pda","This is the fallback icon for Personal Digial Assistant devices. Primary use of this icon is for PDA devices connected to the PC. Connection medium is not an important aspect of the icon. The metaphor for this fallback icon should be a generic PDA device icon","other");
add_icon(win,"emblem-default","The icon used as an emblem to specify the default selection of a printer for example","other");
add_icon(win,"emblem-documents","The icon used as an emblem for the directory where a user's documents are stored","other");
add_icon(win,"emblem-downloads","The icon used as an emblem for the directory where a user's downloads from the internet are stored","other");
add_icon(win,"emblem-favorite","The icon used as an emblem for files and directories that the user marks as favorites","other");
add_icon(win,"emblem-generic","","other");
add_icon(win,"emblem-important","The icon used as an emblem for files and directories that are marked as important by the user","other");
add_icon(win,"emblem-mail","The icon used as an emblem to specify the directory where the user's electronic mail is stored","other");
add_icon(win,"emblem-new","","other");
add_icon(win,"emblem-ok","","other");
add_icon(win,"emblem-package","","other");
add_icon(win,"emblem-photos","The icon used as an emblem to specify the directory where the user stores photographs","other");
add_icon(win,"emblem-readonly","The icon used as an emblem for files and directories which can not be written to by the user","other");
add_icon(win,"emblem-symbolic-link","The icon used as an emblem for files and direcotires that are links to other files or directories on the filesystem","other");
add_icon(win,"emblem-synchronized","The icon used as an emblem for files or directories that are configured to be synchronized to another device","other");
add_icon(win,"emblem-unreadable","The icon used as an emblem for files and directories that are inaccessible. ","other");
add_icon(win,"emblem-urgent","","other");
add_icon(win,"emblem-videos","","other");
add_icon(win,"emblem-web","","other");
add_icon(win,"folder-documents","","other");
add_icon(win,"folder-download","","other");
add_icon(win,"folder-music","","other");
add_icon(win,"folder-pictures","","other");
add_icon(win,"folder-documents","","other");
add_icon(win,"folder-publicshare","","other");
add_icon(win,"folder-remote","The icon used for normal directories on a remote filesystem","other");
add_icon(win,"folder-saved-search","","other");
add_icon(win,"folder-templates","","other");
add_icon(win,"folder-videos","","other");
add_icon(win,"network-server","The icon used for individual host machines under the “Network Servers” place in the file manager","other");
add_icon(win,"network-workgroup","The icon for the “Network Servers” place in the desktop's file manager, and workgroups within the network","other");
add_icon(win,"start-here","The icon used by the desktop's main menu for accessing places, applications, and other features","other");
add_icon(win,"user-bookmarks","The icon for the user's special “Bookmarks” place","other");
add_icon(win,"user-desktop","The icon for the special “Desktop” directory of the user","other");
add_icon(win,"user-home","The icon for the special “Home” directory of the user","other");
add_icon(win,"battery-low","The icon used when the battery is below 20%","other");
add_icon(win,"battery-missing","","other");
add_icon(win,"bluetooth-active","","other");
add_icon(win,"bluetooth-disabled","","other");
add_icon(win,"channel-insecure","","other");
add_icon(win,"channel-secure","","other");
add_icon(win,"computer-fail","","other");
add_icon(win,"display-brightness","","other");
add_icon(win,"keyboard-brightness","","other");
add_icon(win,"folder-drag-accept","The icon used for a folder while an object is being dragged onto it, that is of a type that the directory can contain","other");
add_icon(win,"folder-open","The icon used for folders, while their contents are being displayed within the same window. This icon would normally be shown in a tree or list view, next to the main view of a folder's contents","other");
add_icon(win,"folder-visiting","The icon used for folders, while their contents are being displayed in another window. This icon would typically be used when using multiple windows to navigate the hierarchy, such as in Nautilus's spatial mode","other");
add_icon(win,"image-loading","The icon used when another image is being loaded, such as thumnails for larger images in the file manager","other");
add_icon(win,"image-missing","The icon used when another image could not be loaded","other");
add_icon(win,"mail-signed","The icon used for an electronic mail that contains a signature","other");
add_icon(win,"mail-signed-verified","The icon used for an electronic mail that contains a signature which has also been verified by the security system","other");
add_icon(win,"software-update-available","The icon used when an update is available for software installed on the computing device, through the system software update program","other");
add_icon(win,"software-update-urgent","The icon used when an urgent update is available through the system software update program","other");
add_icon(win,"sync-error","The icon used when an error occurs while attempting to synchronize data from the computing device, to another device","other");
add_icon(win,"sync-synchronizing","The icon used while data is successfully synchronizing to another device","other");
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.