summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HACKING10
-rw-r--r--NEWS6
-rw-r--r--configure.ac17
-rw-r--r--po/POTFILES.in1
-rw-r--r--po/POTFILES.skip2
-rw-r--r--po/be.po156
-rw-r--r--po/cy.po18
-rw-r--r--po/de.po6
-rw-r--r--po/es.po11
-rw-r--r--po/id.po13
-rw-r--r--po/ja.po25
-rw-r--r--po/pt.po8
-rw-r--r--po/ro.po21
-rw-r--r--po/ru.po4
-rw-r--r--po/sk.po10
-rw-r--r--po/sl.po25
-rw-r--r--po/sq.po25
-rw-r--r--po/sv.po7
-rw-r--r--po/tk.po1243
-rw-r--r--po/uk.po64
-rw-r--r--src/50-marco-window-key.xml.in8
-rw-r--r--src/compositor/compositor-private.h3
-rw-r--r--src/compositor/compositor-xrender.c259
-rw-r--r--src/compositor/compositor.c4
-rw-r--r--src/core/display-private.h5
-rw-r--r--src/core/display.c40
-rw-r--r--src/core/edge-resistance.c18
-rw-r--r--src/core/keybindings.c40
-rw-r--r--src/core/place.c52
-rw-r--r--src/core/prefs.c77
-rw-r--r--src/core/window-private.h3
-rw-r--r--src/core/window.c44
-rw-r--r--src/core/workspace.c9
-rw-r--r--src/core/xprops.c40
-rw-r--r--src/include/all-keybindings.h5
-rw-r--r--src/include/common.h10
-rw-r--r--src/include/display.h3
-rw-r--r--src/include/prefs.h5
-rw-r--r--src/include/ui.h17
-rw-r--r--src/marco.convert2
-rw-r--r--src/org.mate.marco.gschema.xml20
-rw-r--r--src/tools/marco-window-demo.c344
-rw-r--r--src/ui/draw-workspace.c11
-rw-r--r--src/ui/fixedtip.c2
-rw-r--r--src/ui/frames.c32
-rw-r--r--src/ui/menu.c29
-rw-r--r--src/ui/metaaccellabel.c43
-rw-r--r--src/ui/preview-widget.c23
-rw-r--r--src/ui/tabpopup.c52
-rw-r--r--src/ui/theme-viewer.c138
-rw-r--r--src/ui/theme.c129
-rw-r--r--src/ui/theme.h10
-rw-r--r--src/ui/tile-preview.c28
-rw-r--r--src/ui/ui.c193
-rw-r--r--src/wm-tester/main.c8
55 files changed, 1467 insertions, 1911 deletions
diff --git a/HACKING b/HACKING
index 171ef007..9de8c290 100644
--- a/HACKING
+++ b/HACKING
@@ -194,16 +194,6 @@ Debugging information
Testing Utilities
- src/run-marco.sh
- The script src/run-marco.sh is useful to hack on the window manager.
- It runs marco in an Xnest. e.g.:
- CLIENTS=3 ./run-marco.sh
- or
- DEBUG=memprof ./run-marco.sh
- or
- DEBUG_TEST=1 ./run-marco-sh
- or whatever.
-
marco-message
The tool marco-message can be used as follows:
marco-message reload-theme
diff --git a/NEWS b/NEWS
index 54280a2a..2e5e24dd 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,9 @@
-1.9.4
+1.10.1
+ * Assorted bugfixes
+
+1.10.0
* Use zenity instead of mate-dialogs
+ * Bugfixes
1.8.0
* Implement side-by-side tiling
diff --git a/configure.ac b/configure.ac
index 8f699fa0..a637fbd3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,8 @@
AC_PREREQ(2.50)
m4_define([marco_major_version], [1])
-m4_define([marco_minor_version], [9])
-m4_define([marco_micro_version], [4])
+m4_define([marco_minor_version], [10])
+m4_define([marco_micro_version], [1])
m4_define([marco_version],
[marco_major_version.marco_minor_version.marco_micro_version])
@@ -12,7 +12,7 @@ AC_CONFIG_SRCDIR(src/core/display.c)
AC_CONFIG_HEADERS(config.h)
AC_CONFIG_MACRO_DIR([m4])
-AM_INIT_AUTOMAKE([no-dist-gzip dist-xz check-news])
+AM_INIT_AUTOMAKE([subdir-objects no-dist-gzip dist-xz check-news])
AM_MAINTAINER_MODE
# Honor aclocal flags
@@ -22,11 +22,9 @@ GETTEXT_PACKAGE=marco
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Name of default gettext domain])
-IT_PROG_INTLTOOL([0.34.90])
+IT_PROG_INTLTOOL([0.50.1])
AC_PROG_CC
-AC_ISC_POSIX
AC_HEADER_STDC
-AC_LIBTOOL_WIN32_DLL
AM_PROG_LIBTOOL
#### Integer sizes
@@ -124,7 +122,6 @@ case "$with_gtk" in
3.0) GTK_API_VERSION=3.0
GTK_MIN_VERSION=2.90.0
CANBERRA_GTK=libcanberra-gtk3
- MATE_DESKTOP_VERSION=1.9.3
;;
esac
AM_CONDITIONAL([HAVE_GTK2], [test "x$with_gtk" = "x2.0"])
@@ -134,10 +131,6 @@ GIO_MIN_VERSION=2.25.10
MARCO_PC_MODULES="gtk+-$GTK_API_VERSION >= $GTK_MIN_VERSION gio-2.0 >= $GIO_MIN_VERSION pango >= 1.2.0 $CANBERRA_GTK"
AC_SUBST(GTK_API_VERSION)
-if test x$GTK_API_VERSION = x3.0; then
- MARCO_PC_MODULES="$MARCO_PC_MODULES mate-desktop-2.0 >= $MATE_DESKTOP_VERSION"
-fi
-
GLIB_GSETTINGS
AC_ARG_ENABLE(verbose-mode,
@@ -231,7 +224,7 @@ fi
## or the render-specific check later
have_xrender=no
-XCOMPOSITE_VERSION=0.2
+XCOMPOSITE_VERSION=0.3
if test x$enable_compositor = xyes; then
have_xcomposite=yes
elif test x$enable_compositor = xauto; then
diff --git a/po/POTFILES.in b/po/POTFILES.in
index e503cb17..5c585ccb 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -3,6 +3,7 @@
src/50-marco-desktop-key.xml.in
src/50-marco-global-key.xml.in
src/50-marco-window-key.xml.in
+[type: gettext/gsettings]src/org.mate.marco.gschema.xml
src/core/bell.c
src/core/core.c
src/core/delete.c
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
index 7ebf145b..e69de29b 100644
--- a/po/POTFILES.skip
+++ b/po/POTFILES.skip
@@ -1,2 +0,0 @@
-src/marco.schemas.in
-
diff --git a/po/be.po b/po/be.po
index 3e8ec794..1160f21e 100644
--- a/po/be.po
+++ b/po/be.po
@@ -5,13 +5,13 @@
# Translators:
# , 2014
# Mihail Varantsou <[email protected]>, 2014
-# Mihail Varantsou <[email protected]>, 2014
+# Mihail Varantsou <[email protected]>, 2014-2015
msgid ""
msgstr ""
"Project-Id-Version: MATE Desktop Environment\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-12 18:09+0200\n"
-"PO-Revision-Date: 2014-11-08 11:21+0000\n"
+"PO-Revision-Date: 2015-03-20 11:11+0000\n"
"Last-Translator: Mihail Varantsou <[email protected]>\n"
"Language-Team: Belarusian (http://www.transifex.com/projects/p/MATE/language/be/)\n"
"MIME-Version: 1.0\n"
@@ -26,7 +26,7 @@ msgstr "Стол"
#: ../src/50-marco-desktop-key.xml.in.h:2
msgid "Show the panel's \"Run Application\" dialog box"
-msgstr "Паказаць вакенца панэлі \"Выканаць праграму\""
+msgstr "Паказаць акенца панэлі \"Выканаць праграму\""
#: ../src/50-marco-desktop-key.xml.in.h:3
msgid "Show the panel's main menu"
@@ -38,7 +38,7 @@ msgstr "Атрымаць здымак экрана"
#: ../src/50-marco-desktop-key.xml.in.h:5
msgid "Take a screenshot of a window"
-msgstr "Атрымаць здымак вакна"
+msgstr "Атрымаць здымак акна"
#: ../src/50-marco-desktop-key.xml.in.h:6
msgid "Run a terminal"
@@ -50,15 +50,15 @@ msgstr "Кіраванне вокнамі"
#: ../src/50-marco-global-key.xml.in.h:2
msgid "Move between windows, using a popup window"
-msgstr "Пераключыцца паміж вокнамі праз выплыўнае вакно"
+msgstr "Пераключыцца паміж вокнамі праз выплыўнае акно"
#: ../src/50-marco-global-key.xml.in.h:3
msgid "Move between windows of an application, using a popup window"
-msgstr "Пераключыцца паміж вокнамі адной праграмы праз выплыўнае вакно"
+msgstr "Пераключыцца паміж вокнамі адной праграмы праз выплыўнае акно"
#: ../src/50-marco-global-key.xml.in.h:4
msgid "Move between panels and the desktop, using a popup window"
-msgstr "Пераключыцца паміж панэлямі і сталом праз выплыўнае вакно"
+msgstr "Пераключыцца паміж панэлямі і сталом праз выплыўнае акно"
#: ../src/50-marco-global-key.xml.in.h:5
msgid "Move between windows immediately"
@@ -146,7 +146,7 @@ msgstr "Пераключыцца на раней вылучаную прасто
#: ../src/50-marco-window-key.xml.in.h:2
msgid "Activate the window menu"
-msgstr "Паказаць меню вакна"
+msgstr "Паказаць меню акна"
#: ../src/50-marco-window-key.xml.in.h:3
msgid "Toggle fullscreen mode"
@@ -158,11 +158,11 @@ msgstr "Змяніць стан найбольшання"
#: ../src/50-marco-window-key.xml.in.h:5
msgid "Maximize window"
-msgstr "Найбольшыць вакно"
+msgstr "Найбольшыць акно"
#: ../src/50-marco-window-key.xml.in.h:6
msgid "Restore window"
-msgstr "Аднавіць вакно"
+msgstr "Аднавіць акно"
#: ../src/50-marco-window-key.xml.in.h:7
msgid "Toggle shaded state"
@@ -170,143 +170,143 @@ msgstr "Змяніць стан зацянення"
#: ../src/50-marco-window-key.xml.in.h:8
msgid "Close window"
-msgstr "Закрыць вакно"
+msgstr "Закрыць акно"
#: ../src/50-marco-window-key.xml.in.h:9
msgid "Minimize window"
-msgstr "Найменшыць вакно"
+msgstr "Найменшыць акно"
#: ../src/50-marco-window-key.xml.in.h:10
msgid "Move window"
-msgstr "Перасунуць вакно"
+msgstr "Перасунуць акно"
#: ../src/50-marco-window-key.xml.in.h:11
msgid "Resize window"
-msgstr "Змяніць памер вакна"
+msgstr "Змяніць памер акна"
#: ../src/50-marco-window-key.xml.in.h:12
msgid "Toggle whether window is on all workspaces or just one"
-msgstr "Пераключыць, ці вакно відаць на адной прасторы або на ўсіх"
+msgstr "Пераключыць, відаць акно на адной прасторы ці на ўсіх"
#: ../src/50-marco-window-key.xml.in.h:13
msgid "Raise window if it's covered by another window, otherwise lower it"
-msgstr "Узняць вакно, калі яно перакрыта іншым, інакш апусціць"
+msgstr "Узняць акно, калі яно перакрыта іншым, інакш апусціць"
#: ../src/50-marco-window-key.xml.in.h:14
msgid "Raise window above other windows"
-msgstr "Размясціць вакно па-над іншымі вокнамі"
+msgstr "Размясціць акно па-над іншымі вокнамі"
#: ../src/50-marco-window-key.xml.in.h:15
msgid "Lower window below other windows"
-msgstr "Размясціць вакно за ўсімі вокнамі"
+msgstr "Размясціць акно за ўсімі вокнамі"
#: ../src/50-marco-window-key.xml.in.h:16
msgid "Maximize window vertically"
-msgstr "Найбольшыць вакно па вертыкалі"
+msgstr "Найбольшыць акно па вертыкалі"
#: ../src/50-marco-window-key.xml.in.h:17
msgid "Maximize window horizontally"
-msgstr "Найбольшыць вакно па гарызанталі"
+msgstr "Найбольшыць акно па гарызанталі"
#: ../src/50-marco-window-key.xml.in.h:18
msgid "Move window to north-west (top left) corner"
-msgstr "Перасунуць вакно ў паўночна-заходні (верхні левы) вугал"
+msgstr "Перасунуць акно ў паўночна-заходні (верхні левы) вугал"
#: ../src/50-marco-window-key.xml.in.h:19
msgid "Move window to north-east (top right) corner"
-msgstr "Перасунуць вакно ў паўночна-усходні (верхні правы) вугал"
+msgstr "Перасунуць акно ў паўночна-усходні (верхні правы) вугал"
#: ../src/50-marco-window-key.xml.in.h:20
msgid "Move window to south-west (bottom left) corner"
-msgstr "Перасунуць вакно ў паўднёва-заходні (ніжні левы) вугал"
+msgstr "Перасунуць акно ў паўднёва-заходні (ніжні левы) вугал"
#: ../src/50-marco-window-key.xml.in.h:21
msgid "Move window to south-east (bottom right) corner"
-msgstr "Перасунуць вакно ў паўднёва-усходні (ніжні правы) вугал"
+msgstr "Перасунуць акно ў паўднёва-усходні (ніжні правы) вугал"
#: ../src/50-marco-window-key.xml.in.h:22
msgid "Move window to north (top) side of screen"
-msgstr "Перасунуць вакно да паўночнага (верхняга) краю экрана"
+msgstr "Перасунуць акно да паўночнага (верхняга) краю экрана"
#: ../src/50-marco-window-key.xml.in.h:23
msgid "Move window to south (bottom) side of screen"
-msgstr "Перасунуць вакно да паўднёвага (ніжняга) краю экрана"
+msgstr "Перасунуць акно да паўднёвага (ніжняга) краю экрана"
#: ../src/50-marco-window-key.xml.in.h:24
msgid "Move window to east (right) side of screen"
-msgstr "Перасунуць вакно да усходняга (правага) краю экрана"
+msgstr "Перасунуць акно да ўсходняга (правага) краю экрана"
#: ../src/50-marco-window-key.xml.in.h:25
msgid "Move window to west (left) side of screen"
-msgstr "Перасунуць вакно да заходняга (левага) краю экрана"
+msgstr "Перасунуць акно да заходняга (левага) краю экрана"
#: ../src/50-marco-window-key.xml.in.h:26
msgid "Move window to center of screen"
-msgstr "Перасунуць вакно ў цэнтр экрана"
+msgstr "Перасунуць акно ў цэнтр экрана"
#: ../src/50-marco-window-key.xml.in.h:27
msgid "Move window to workspace 1"
-msgstr "Перанесці вакно на працоўную прастору 1"
+msgstr "Перанесці акно на працоўную прастору 1"
#: ../src/50-marco-window-key.xml.in.h:28
msgid "Move window to workspace 2"
-msgstr "Перанесці вакно на працоўную прастору 2"
+msgstr "Перанесці акно на працоўную прастору 2"
#: ../src/50-marco-window-key.xml.in.h:29
msgid "Move window to workspace 3"
-msgstr "Перанесці вакно на працоўную прастору 3"
+msgstr "Перанесці акно на працоўную прастору 3"
#: ../src/50-marco-window-key.xml.in.h:30
msgid "Move window to workspace 4"
-msgstr "Перанесці вакно на працоўную прастору 4"
+msgstr "Перанесці акно на працоўную прастору 4"
#: ../src/50-marco-window-key.xml.in.h:31
msgid "Move window to workspace 5"
-msgstr "Перанесці вакно на працоўную прастору 5"
+msgstr "Перанесці акно на працоўную прастору 5"
#: ../src/50-marco-window-key.xml.in.h:32
msgid "Move window to workspace 6"
-msgstr "Перанесці вакно на працоўную прастору 6"
+msgstr "Перанесці акно на працоўную прастору 6"
#: ../src/50-marco-window-key.xml.in.h:33
msgid "Move window to workspace 7"
-msgstr "Перанесці вакно на працоўную прастору 7"
+msgstr "Перанесці акно на працоўную прастору 7"
#: ../src/50-marco-window-key.xml.in.h:34
msgid "Move window to workspace 8"
-msgstr "Перанесці вакно на працоўную прастору 8"
+msgstr "Перанесці акно на працоўную прастору 8"
#: ../src/50-marco-window-key.xml.in.h:35
msgid "Move window to workspace 9"
-msgstr "Перанесці вакно на працоўную прастору 9"
+msgstr "Перанесці акно на працоўную прастору 9"
#: ../src/50-marco-window-key.xml.in.h:36
msgid "Move window to workspace 10"
-msgstr "Перанесці вакно на працоўную прастору 10"
+msgstr "Перанесці акно на працоўную прастору 10"
#: ../src/50-marco-window-key.xml.in.h:37
msgid "Move window to workspace 11"
-msgstr "Перанесці вакно на працоўную прастору 11"
+msgstr "Перанесці акно на працоўную прастору 11"
#: ../src/50-marco-window-key.xml.in.h:38
msgid "Move window to workspace 12"
-msgstr "Перанесці вакно на працоўную прастору 12"
+msgstr "Перанесці акно на працоўную прастору 12"
#: ../src/50-marco-window-key.xml.in.h:39
msgid "Move window one workspace to the left"
-msgstr "Перанесці вакно на лявейшую працоўную прастору"
+msgstr "Перанесці акно лявей на адну працоўную прастору"
#: ../src/50-marco-window-key.xml.in.h:40
msgid "Move window one workspace to the right"
-msgstr "Перанесці вакно на правейшую працоўную прастору"
+msgstr "Перанесці акно правей на адну працоўную прастору"
#: ../src/50-marco-window-key.xml.in.h:41
msgid "Move window one workspace up"
-msgstr "Перанесці вакно на вышэйшую працоўную прастору"
+msgstr "Перанесці акно вышэй на адну працоўную прастору"
#: ../src/50-marco-window-key.xml.in.h:42
msgid "Move window one workspace down"
-msgstr "Перанесці вакно на ніжэйшую працоўную прастору"
+msgstr "Перанесці акно ніжэй на адну працоўную прастору"
#: ../src/core/bell.c:294
msgid "Bell event"
@@ -350,7 +350,7 @@ msgstr "Не стае пашырэння %s, якое патрабуецца д�
#: ../src/core/display.c:346
#, c-format
msgid "Failed to open X Window System display '%s'\n"
-msgstr "Не выйшла адкрыць сістэмнае вакно \"%s\" асяроддзя X Window\n"
+msgstr "Не выйшла адкрыць сістэмнае акно \"%s\" асяроддзя X Window\n"
#: ../src/core/errors.c:313
#, c-format
@@ -358,7 +358,7 @@ msgid ""
"Lost connection to the display '%s';\n"
"most likely the X server was shut down or you killed/destroyed\n"
"the window manager.\n"
-msgstr "Страчана злучэнне з вакном \"%s\";\nмусіь, X-сервер быў адключаны, альбо знішчаны\nкіраўнік вокнаў.\n"
+msgstr "Страчана злучэнне з акном \"%s\";\nмусіць, X-сервер быў адключаны, альбо знішчаны\nкіраўнік вокнаў.\n"
#: ../src/core/errors.c:320
#, c-format
@@ -541,7 +541,7 @@ msgstr "Памылка запісу файла сеансу \"%s\": %s\n"
#: ../src/core/session.c:1005
#, c-format
msgid "Error closing session file '%s': %s\n"
-msgstr "Памылка закрыцця файла сеансу \"%s\": %s\n"
+msgstr "Памылка закрывання файла сеансу \"%s\": %s\n"
#: ../src/core/session.c:1135
#, c-format
@@ -579,7 +579,7 @@ msgstr ""
#: ../src/core/util.c:101
#, c-format
msgid "Failed to open debug log: %s\n"
-msgstr "Памылка падчас адкрыцця логу: %s\n"
+msgstr "Памылка падчас адкрывання логу наладкі: %s\n"
#: ../src/core/util.c:111
#, c-format
@@ -624,7 +624,7 @@ msgstr "Marco"
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
"window as specified in the ICCCM.\n"
-msgstr "Вакно \"%s\" выставіла для сябе значэнне SM_CLIENT_ID замест вакна са значэннем WM_CLIENT_LEADER, як гэта напісана ў ICCCM.\n"
+msgstr "Акно \"%s\" выставіла значэнне SM_CLIENT_ID на сябе, замест акна са значэннем WM_CLIENT_LEADER, як гэта напісана ў ICCCM.\n"
#. We ignore mwm_has_resize_func because WM_NORMAL_HINTS is the
#. * authoritative source for that info. Some apps such as mplayer or
@@ -637,7 +637,7 @@ msgstr "Вакно \"%s\" выставіла для сябе значэнне SM
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
"%d x %d and max size %d x %d; this doesn't make much sense.\n"
-msgstr "Вакно \"%s\" выставіла падказку MWM, якая вызначае, што яго памер не змяняецца, але выставіла мінімальны памер %d x %d і максімальны памер %d x %d; гэта бессэнсоўна.\n"
+msgstr "Акно \"%s\" выставіла падказку MWM, якая вызначае, што яго памер не змяняецца, але выставіла мінімальны памер %d x %d і максімальны памер %d x %d; гэта бессэнсоўна.\n"
#: ../src/core/window-props.c:252
#, c-format
@@ -673,7 +673,7 @@ msgstr "%s (як іншы карыстальнік)"
#: ../src/core/window-props.c:1438
#, c-format
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
-msgstr "Няправільнае вакно WM_TRANSIENT_FOR 0x%lx вызначанае для %s.\n"
+msgstr "Няправільнае акно WM_TRANSIENT_FOR 0x%lx вызначанае для %s.\n"
#: ../src/core/xprops.c:155
#, c-format
@@ -683,19 +683,19 @@ msgid ""
"and actually has type %s format %d n_items %d.\n"
"This is most likely an application bug, not a window manager bug.\n"
"The window has title=\"%s\" class=\"%s\" name=\"%s\"\n"
-msgstr "Вакно 0x%lx мае ўласцівасць \"%s\",\nу якой мусіць быць тып \"%s\" фармату %d,\nа ў сапраўднасці ўжыты тып \"%s\" фармату %d колькасць элементаў %d:\nПадобна да хібы праграмы, а не кіраўніка вокнаў.\nВакно мае загаловак \"%s\", класа - \"%s\", назва - \"%s\"\n"
+msgstr "Акно 0x%lx мае ўласцівасць \"%s\",\nу якой мусіць быць тып \"%s\" фармату %d,\nа ў сапраўднасці ўжыты тып \"%s\" фармату %d колькасць элементаў %d:\nПадобна да хібы праграмы, а не кіраўніка вокнаў.\nАкно мае загаловак \"%s\", класа - \"%s\", назва - \"%s\"\n"
#: ../src/core/xprops.c:401
#, c-format
msgid "Property %s on window 0x%lx contained invalid UTF-8\n"
-msgstr "Уласцівасць \"%s\" для вакна 0x%lx утрымлівала нядзейсны UTF-8\n"
+msgstr "Уласцівасць \"%s\" для акна 0x%lx утрымлівала нядзейсны UTF-8\n"
#: ../src/core/xprops.c:484
#, c-format
msgid ""
"Property %s on window 0x%lx contained invalid UTF-8 for item %d in the "
"list\n"
-msgstr "Уласцівасць \"%s\" для вакна 0x%lx утрымлівала нядзейсны UTF-8 для элемента %d у спісе\n"
+msgstr "Уласцівасць \"%s\" для акна 0x%lx утрымлівала нядзейсны UTF-8 для элемента %d у спісе\n"
#: ../src/tools/marco-message.c:150
#, c-format
@@ -704,39 +704,39 @@ msgstr "Выкарыстанне: %s\n"
#: ../src/ui/frames.c:1199
msgid "Close Window"
-msgstr "Закрыць вакно"
+msgstr "Закрыць акно"
#: ../src/ui/frames.c:1202
msgid "Window Menu"
-msgstr "Меню вакна"
+msgstr "Меню акна"
#: ../src/ui/frames.c:1205
msgid "Minimize Window"
-msgstr "Найменшыць вакно"
+msgstr "Найменшыць акно"
#: ../src/ui/frames.c:1208
msgid "Maximize Window"
-msgstr "Найбольшыць вакно"
+msgstr "Найбольшыць акно"
#: ../src/ui/frames.c:1211
msgid "Restore Window"
-msgstr "Аднавіць вакно"
+msgstr "Аднавіць акно"
#: ../src/ui/frames.c:1214
msgid "Roll Up Window"
-msgstr "Скатаць вакно"
+msgstr "Скатаць акно"
#: ../src/ui/frames.c:1217
msgid "Unroll Window"
-msgstr "Раскатаць вакно"
+msgstr "Раскатаць акно"
#: ../src/ui/frames.c:1220
msgid "Keep Window On Top"
-msgstr "Трымаць вакно на версе"
+msgstr "Трымаць акно на версе"
#: ../src/ui/frames.c:1223
msgid "Remove Window From Top"
-msgstr "Зняць вакно з верху"
+msgstr "Зняць акно з верху"
#: ../src/ui/frames.c:1226
msgid "Always On Visible Workspace"
@@ -744,7 +744,7 @@ msgstr "Заўсёды на бачнай працоўнай прасторы"
#: ../src/ui/frames.c:1229
msgid "Put Window On Only One Workspace"
-msgstr "Пакласці вакно толькі на адну працоўную прастору"
+msgstr "Пакласці акно толькі на адну працоўную прастору"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:65
@@ -784,7 +784,7 @@ msgstr "Змяніць _памер"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:79
msgid "Move Titlebar On_screen"
-msgstr "Перасунуць загаловак вакна па _экране"
+msgstr "Перасунуць загаловак акна па _экране"
#. separator
#. Translators: Translate this string the same way as you do in libwnck!
@@ -805,22 +805,22 @@ msgstr "Толькі на _гэтай працоўнай прасторы"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:90
msgid "Move to Workspace _Left"
-msgstr "Перанесці вакно на _лявейшую прастору"
+msgstr "Перанесці акно на _лявейшую прастору"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:92
msgid "Move to Workspace R_ight"
-msgstr "Перанесці вакно на _правейшую прастору"
+msgstr "Перанесці акно на _правейшую прастору"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:94
msgid "Move to Workspace _Up"
-msgstr "Перанесці вакно на _вышэйшую прастору"
+msgstr "Перанесці акно на _вышэйшую прастору"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:96
msgid "Move to Workspace _Down"
-msgstr "Перанесці вакно на _ніжэйшую прастору"
+msgstr "Перанесці акно на _ніжэйшую прастору"
#. separator
#. Translators: Translate this string the same way as you do in libwnck!
@@ -845,7 +845,7 @@ msgstr "Працоўная прастора %s%d"
#: ../src/ui/menu.c:387
msgid "Move to Another _Workspace"
-msgstr "Перанесці вакно на _іншую прастору"
+msgstr "Перанесці акно на _іншую прастору"
#. This is the text that should appear next to menu accelerators
#. * that use the shift key. If the text on this key isn't typically
@@ -1144,7 +1144,7 @@ msgstr "Няма <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"што-�
#: ../src/ui/theme.c:5158
#, c-format
msgid "Failed to load theme \"%s\": %s\n"
-msgstr "Памылка падчас адкрыцця тэмы \"%s\": %s\n"
+msgstr "Памылка падчас адкрывання тэмы \"%s\": %s\n"
#: ../src/ui/theme.c:5288 ../src/ui/theme.c:5295 ../src/ui/theme.c:5302
#: ../src/ui/theme.c:5309 ../src/ui/theme.c:5316
@@ -1157,7 +1157,7 @@ msgstr "Няма элемента <%s> для тэмы \"%s\""
msgid ""
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
"type=\"%s\" style_set=\"whatever\"/> element"
-msgstr "Няма стыля фрэйма для тыпу вакна \"%s\" у тэме \"%s\", дадайце элемент <window type=\"%s\" style_set=\"што-небудзь\"/>"
+msgstr "Няма стыля фрэйма для тыпу акна \"%s\" у тэме \"%s\", дадайце элемент <window type=\"%s\" style_set=\"што-небудзь\"/>"
#: ../src/ui/theme.c:5797 ../src/ui/theme.c:5859 ../src/ui/theme.c:5922
#, c-format
@@ -1277,7 +1277,7 @@ msgstr "Параметр style_set \"%s\" для элемента <%s> невя�
#: ../src/ui/theme-parser.c:1234
#, c-format
msgid "Window type \"%s\" has already been assigned a style set"
-msgstr "Тыпу вакна \"%s\" ужо быў прыпісаны набор стыляў"
+msgstr "Тыпу акна \"%s\" ужо быў прыпісаны набор стыляў"
#: ../src/ui/theme-parser.c:1264 ../src/ui/theme-parser.c:1328
#: ../src/ui/theme-parser.c:1554 ../src/ui/theme-parser.c:2775
@@ -1574,7 +1574,7 @@ msgstr "Пусты элемент меню %d\n"
#: ../src/ui/theme-viewer.c:361
msgid "Border-only window"
-msgstr "Вакно толькі з межамі"
+msgstr "Акно толькі з межамі"
#: ../src/ui/theme-viewer.c:363
msgid "Bar"
@@ -1612,7 +1612,7 @@ msgstr "Праверка дзеянні кнопак %d"
#: ../src/ui/theme-viewer.c:757
#, c-format
msgid "%g milliseconds to draw one window frame"
-msgstr "Маляваць кадр вакна кожныя %g мс"
+msgstr "Маляваць кадр акна кожныя %g мс"
#: ../src/ui/theme-viewer.c:800
#, c-format
@@ -1622,7 +1622,7 @@ msgstr "Ужыванне: marco-theme-viewer [тэма]\n"
#: ../src/ui/theme-viewer.c:807
#, c-format
msgid "Error loading theme: %s\n"
-msgstr "Памылка адкрыцця тэмы: %s\n"
+msgstr "Памылка адкрывання тэмы: %s\n"
#: ../src/ui/theme-viewer.c:813
#, c-format
@@ -1651,7 +1651,7 @@ msgstr "Тэст"
#: ../src/ui/theme-viewer.c:923
msgid "Window Title Goes Here"
-msgstr "Тут паказаны загаловак вакна"
+msgstr "Тут паказаны загаловак акна"
#: ../src/ui/theme-viewer.c:1027
#, c-format
diff --git a/po/cy.po b/po/cy.po
index aa4411dd..0bd4916a 100644
--- a/po/cy.po
+++ b/po/cy.po
@@ -3,13 +3,13 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# ciaran, 2014
+# ciaran, 2014-2015
msgid ""
msgstr ""
"Project-Id-Version: MATE Desktop Environment\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-12 18:09+0200\n"
-"PO-Revision-Date: 2014-12-20 18:34+0000\n"
+"PO-Revision-Date: 2015-05-26 18:43+0000\n"
"Last-Translator: ciaran\n"
"Language-Team: Welsh (http://www.transifex.com/projects/p/MATE/language/cy/)\n"
"MIME-Version: 1.0\n"
@@ -36,7 +36,7 @@ msgstr "Tynnu sgrinlun"
#: ../src/50-marco-desktop-key.xml.in.h:5
msgid "Take a screenshot of a window"
-msgstr "Tynnu sgrinlun o ffenest"
+msgstr "Tynnu sgrinlun o ffenestr"
#: ../src/50-marco-desktop-key.xml.in.h:6
msgid "Run a terminal"
@@ -438,7 +438,7 @@ msgstr "DIffodd cyfansoddi"
#: ../src/core/main.c:328
msgid ""
"Don't make fullscreen windows that are maximized and have no decorations"
-msgstr ""
+msgstr "Peidio â mynd i'r sgrin lawn os yw ffenestr heb addurniadau wedi'i hehangu "
#: ../src/core/main.c:537
#, c-format
@@ -659,7 +659,7 @@ msgstr ""
#: ../src/core/window-props.c:446
#, c-format
msgid "%s (as %s)"
-msgstr ""
+msgstr "%s (fel %s)"
#. Translators: the title of a window owned by another user
#. * on this machine, whose name we don't know
@@ -714,7 +714,7 @@ msgstr "Lleihau'r Ffenest"
#: ../src/ui/frames.c:1208
msgid "Maximize Window"
-msgstr "Ehangu'r Ffenest"
+msgstr "Ehangu'r ffenest"
#: ../src/ui/frames.c:1211
msgid "Restore Window"
@@ -1172,7 +1172,7 @@ msgstr "Diffiniwyd y cysonyn \"%s\" eisoes"
#: ../src/ui/theme-parser.c:226
#, c-format
msgid "No \"%s\" attribute on element <%s>"
-msgstr ""
+msgstr "Dim priodoledd \"%s\" ar yr elfen <%s>"
#: ../src/ui/theme-parser.c:255 ../src/ui/theme-parser.c:273
#, c-format
@@ -1415,12 +1415,12 @@ msgstr "Nid yw \"%s\" yn werth dilys ar gyfer y briodwedd \"resize\""
msgid ""
"Should not have \"resize\" attribute on <%s> element for maximized/shaded "
"states"
-msgstr "Ni ddylid cael priodwedd \"resize\" ar elfen <%s> ar gyfer cyflyrau ehangu/wedi cysgodi"
+msgstr "Ni ddylid cael priodwedd \"ailfientio\" ar elfen <%s> ar gyfer cyflyrau ehangu/wedi cysgodi"
#: ../src/ui/theme-parser.c:3106
#, c-format
msgid "Should not have \"resize\" attribute on <%s> element for maximized states"
-msgstr "Ni ddylid cael priodwedd \"resize\" ar elfen <%s> mewn cyflwr wedi'i ehangu"
+msgstr "Ni ddylid cael priodwedd \"ailfeintio\" ar elfen <%s> mewn cyflwr wedi'i ehangu"
#: ../src/ui/theme-parser.c:3120 ../src/ui/theme-parser.c:3142
#, c-format
diff --git a/po/de.po b/po/de.po
index 76569cb9..c88561cc 100644
--- a/po/de.po
+++ b/po/de.po
@@ -11,7 +11,7 @@ msgstr ""
"Project-Id-Version: MATE Desktop Environment\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-12 18:09+0200\n"
-"PO-Revision-Date: 2015-01-15 13:19+0000\n"
+"PO-Revision-Date: 2015-02-19 15:21+0000\n"
"Last-Translator: Tobias Bannert <[email protected]>\n"
"Language-Team: German (http://www.transifex.com/projects/p/MATE/language/de/)\n"
"MIME-Version: 1.0\n"
@@ -202,11 +202,11 @@ msgstr "Fenster hinter die anderen Fenster absenken"
#: ../src/50-marco-window-key.xml.in.h:16
msgid "Maximize window vertically"
-msgstr "Fenster vertikal maximieren"
+msgstr "Fenster senkrecht vergrößern"
#: ../src/50-marco-window-key.xml.in.h:17
msgid "Maximize window horizontally"
-msgstr "Fenster horizontal maximieren"
+msgstr "Fenster waagerecht vergrößern"
#: ../src/50-marco-window-key.xml.in.h:18
msgid "Move window to north-west (top left) corner"
diff --git a/po/es.po b/po/es.po
index 50715f7a..2d8e5d2e 100644
--- a/po/es.po
+++ b/po/es.po
@@ -3,7 +3,8 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# Adolfo Jayme Barrientos <[email protected]>, 2014
+# Adolfo Jayme Barrientos, 2015
+# Adolfo Jayme Barrientos, 2014
# difusion, 2014
# Emiliano Fascetti, 2014-2015
# Lluís Tusquellas <[email protected]>, 2013
@@ -13,8 +14,8 @@ msgstr ""
"Project-Id-Version: MATE Desktop Environment\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-12 18:09+0200\n"
-"PO-Revision-Date: 2015-01-05 21:04+0000\n"
-"Last-Translator: Emiliano Fascetti\n"
+"PO-Revision-Date: 2015-06-03 21:26+0000\n"
+"Last-Translator: Adolfo Jayme Barrientos\n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/MATE/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -387,12 +388,12 @@ msgstr "Hubo un error al ejecutar <tt>%s</tt>:\n\n%s"
#: ../src/core/keybindings.c:2396
#, c-format
msgid "No command %d has been defined.\n"
-msgstr "No ha sido definido ningún comando %d.\n"
+msgstr "No se definió ninguna orden %d.\n"
#: ../src/core/keybindings.c:3356
#, c-format
msgid "No terminal command has been defined.\n"
-msgstr "No ha sido definido ningún comando de terminal.\n"
+msgstr "No se definió ninguna orden de consola.\n"
#: ../src/core/main.c:137
#, c-format
diff --git a/po/id.po b/po/id.po
index 38f8af21..1b986194 100644
--- a/po/id.po
+++ b/po/id.po
@@ -4,17 +4,18 @@
#
# Translators:
# airinuxazis <[email protected]>, 2012
-# Gregori, 2014
-# Gregori, 2013
-# Hasan Al Banna, 2012
+# Ibnu Daru AJi, 2014
+# Ibnu Daru AJi, 2013
+# La Ode Muh. Fadlun Akbar <[email protected]>, 2015
+# A1Banna, 2012
# Willy Sudiarto Raharjo <[email protected]>, 2014
msgid ""
msgstr ""
"Project-Id-Version: MATE Desktop Environment\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-12 18:09+0200\n"
-"PO-Revision-Date: 2014-10-24 12:42+0000\n"
-"Last-Translator: Willy Sudiarto Raharjo <[email protected]>\n"
+"PO-Revision-Date: 2015-04-08 14:55+0000\n"
+"Last-Translator: La Ode Muh. Fadlun Akbar <[email protected]>\n"
"Language-Team: Indonesian (http://www.transifex.com/projects/p/MATE/language/id/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -1515,7 +1516,7 @@ msgstr "Gagal menemukan berkas yang valid bagi tema %s\n"
#: ../src/ui/theme-parser.c:4205
#, c-format
msgid "Theme file %s did not contain a root <metacity_theme> element"
-msgstr "File tema %s tidak mengandung root <metacity_theme> elemen"
+msgstr "Berkas tema %s tidak mengandung root <metacity_theme> elemen"
#: ../src/ui/theme-viewer.c:75
msgid "/_Windows"
diff --git a/po/ja.po b/po/ja.po
index 32b49719..e769b985 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -5,13 +5,14 @@
# Translators:
# ABE Tsunehiko, 2013
# mauron, 2013
+# Mika Kobayashi, 2015
msgid ""
msgstr ""
"Project-Id-Version: MATE Desktop Environment\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-12 18:09+0200\n"
-"PO-Revision-Date: 2014-10-12 16:11+0000\n"
-"Last-Translator: Stefano Karapetsas <[email protected]>\n"
+"PO-Revision-Date: 2015-02-23 23:22+0000\n"
+"Last-Translator: Mika Kobayashi\n"
"Language-Team: Japanese (http://www.transifex.com/projects/p/MATE/language/ja/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -141,7 +142,7 @@ msgstr "下側のワークスペースへ切り替える"
#: ../src/50-marco-global-key.xml.in.h:25
msgid "Switch to previously selected workspace"
-msgstr ""
+msgstr "直前にいたワークスペースへ移動"
#: ../src/50-marco-window-key.xml.in.h:2
msgid "Activate the window menu"
@@ -209,39 +210,39 @@ msgstr "ウィンドウを水平方向に最大化する"
#: ../src/50-marco-window-key.xml.in.h:18
msgid "Move window to north-west (top left) corner"
-msgstr ""
+msgstr "ウィンドウを左上に移動"
#: ../src/50-marco-window-key.xml.in.h:19
msgid "Move window to north-east (top right) corner"
-msgstr ""
+msgstr "ウィンドウを右上に移動"
#: ../src/50-marco-window-key.xml.in.h:20
msgid "Move window to south-west (bottom left) corner"
-msgstr ""
+msgstr "ウィンドウを左下に移動"
#: ../src/50-marco-window-key.xml.in.h:21
msgid "Move window to south-east (bottom right) corner"
-msgstr ""
+msgstr "ウィンドウを右下に移動"
#: ../src/50-marco-window-key.xml.in.h:22
msgid "Move window to north (top) side of screen"
-msgstr ""
+msgstr "ウィンドウを画面上端に移動"
#: ../src/50-marco-window-key.xml.in.h:23
msgid "Move window to south (bottom) side of screen"
-msgstr ""
+msgstr "ウィンドウを画面下端に移動"
#: ../src/50-marco-window-key.xml.in.h:24
msgid "Move window to east (right) side of screen"
-msgstr ""
+msgstr "ウィンドウを画面右端に移動"
#: ../src/50-marco-window-key.xml.in.h:25
msgid "Move window to west (left) side of screen"
-msgstr ""
+msgstr "ウィンドウを画面左端に移動"
#: ../src/50-marco-window-key.xml.in.h:26
msgid "Move window to center of screen"
-msgstr ""
+msgstr "ウィンドウを画面中央に移動"
#: ../src/50-marco-window-key.xml.in.h:27
msgid "Move window to workspace 1"
diff --git a/po/pt.po b/po/pt.po
index 57eff245..51efa689 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -5,13 +5,13 @@
# Translators:
# Carlos Moreira <[email protected]>, 2013
# Carlos Moreira <[email protected]>, 2012
-# Carlos Moreira <[email protected]>, 2014
+# Carlos Moreira <[email protected]>, 2014-2015
msgid ""
msgstr ""
"Project-Id-Version: MATE Desktop Environment\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-12 18:09+0200\n"
-"PO-Revision-Date: 2014-12-20 21:28+0000\n"
+"PO-Revision-Date: 2015-06-08 09:50+0000\n"
"Last-Translator: Carlos Moreira <[email protected]>\n"
"Language-Team: Portuguese (http://www.transifex.com/projects/p/MATE/language/pt/)\n"
"MIME-Version: 1.0\n"
@@ -1324,7 +1324,7 @@ msgstr "Nenhum atributo \"extent_angle\" ou \"to\" no elemento <%s>"
#: ../src/ui/theme-parser.c:2066
#, c-format
msgid "Did not understand value \"%s\" for type of gradient"
-msgstr "Incapaz de compreender valor \"%s\" para tipo de gradiente"
+msgstr "Incapaz de compreender valor \"%s\" do tipo de gradiente"
#: ../src/ui/theme-parser.c:2144 ../src/ui/theme-parser.c:2519
#, c-format
@@ -1455,7 +1455,7 @@ msgstr "Impossível ter dois draw_ops num elemento <menu_icon> (tema especificou
#: ../src/ui/theme-parser.c:3350
#, c-format
msgid "Outermost element in theme must be <metacity_theme> not <%s>"
-msgstr "O elemento mais externo do tema deve ser <metacity_theme> não <%s>"
+msgstr "O elemento mais externo do tema deve ser <metacity_theme>, não <%s>"
#: ../src/ui/theme-parser.c:3370
#, c-format
diff --git a/po/ro.po b/po/ro.po
index 240d3fb0..2d69adcd 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -3,14 +3,15 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
+# Daniel <[email protected]>, 2015
# Octi <[email protected]>, 2014
msgid ""
msgstr ""
"Project-Id-Version: MATE Desktop Environment\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-12 18:09+0200\n"
-"PO-Revision-Date: 2014-11-01 07:13+0000\n"
-"Last-Translator: Octi <[email protected]>\n"
+"PO-Revision-Date: 2015-04-20 19:17+0000\n"
+"Last-Translator: Daniel <[email protected]>\n"
"Language-Team: Romanian (http://www.transifex.com/projects/p/MATE/language/ro/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -383,12 +384,12 @@ msgstr "A apărut o eroare la executarea <tt>%s</tt>:\n\n%s"
#: ../src/core/keybindings.c:2396
#, c-format
msgid "No command %d has been defined.\n"
-msgstr "Nici o comandă %d nu a fost definită.\n"
+msgstr "Nicio comandă %d nu a fost definită.\n"
#: ../src/core/keybindings.c:3356
#, c-format
msgid "No terminal command has been defined.\n"
-msgstr "Nici o comandă pentru terminal nu a fost definită.\n"
+msgstr "Nicio comandă pentru terminal nu a fost definită.\n"
#: ../src/core/main.c:137
#, c-format
@@ -1120,7 +1121,7 @@ msgstr "Expresia coordonatelor are o paranteză deschisă și nici una închisă
#: ../src/ui/theme.c:2405
#, c-format
msgid "Coordinate expression doesn't seem to have any operators or operands"
-msgstr "Expresia coordonatelor nu are nici un operator și operand"
+msgstr "Expresia coordonatelor nu are niciun operator și operand"
#: ../src/ui/theme.c:2609 ../src/ui/theme.c:2629 ../src/ui/theme.c:2649
#, c-format
@@ -1148,7 +1149,7 @@ msgstr "Nu s-a putut încărca tema „%s”: %s\n"
#: ../src/ui/theme.c:5309 ../src/ui/theme.c:5316
#, c-format
msgid "No <%s> set for theme \"%s\""
-msgstr "Nu a fost definit nici un <%s> pentru tema „%s”"
+msgstr "Nu a fost definit niciun <%s> pentru tema „%s”"
#: ../src/ui/theme.c:5324
#, c-format
@@ -1368,7 +1369,7 @@ msgstr "Stilul cadrului are deja o componentă la poziția %s"
#: ../src/ui/theme-parser.c:2879 ../src/ui/theme-parser.c:2954
#, c-format
msgid "No <draw_ops> with the name \"%s\" has been defined"
-msgstr "Nici o <draw_ops> cu numele „%s” nu a fost definită"
+msgstr "Nicio <draw_ops> cu numele „%s” nu a fost definită"
#: ../src/ui/theme-parser.c:2908
#, c-format
@@ -1485,16 +1486,16 @@ msgstr "Elementul <%s> nu este permis în interiorul unui element <%s>"
#: ../src/ui/theme-parser.c:3693
msgid "No draw_ops provided for frame piece"
-msgstr "Nici o draw_ops furnizată pentru o componentă de cadru"
+msgstr "Nicio draw_ops furnizată pentru o componentă de cadru"
#: ../src/ui/theme-parser.c:3708
msgid "No draw_ops provided for button"
-msgstr "Nici o draw_ops furnizată pentru buton"
+msgstr "Nicio draw_ops furnizată pentru buton"
#: ../src/ui/theme-parser.c:3770
#, c-format
msgid "No text is allowed inside element <%s>"
-msgstr "Nici un text nu este permis în interiorul <%s>"
+msgstr "Niciun text nu este permis în interiorul <%s>"
#: ../src/ui/theme-parser.c:3825 ../src/ui/theme-parser.c:3837
#: ../src/ui/theme-parser.c:3849 ../src/ui/theme-parser.c:3861
diff --git a/po/ru.po b/po/ru.po
index f5049a12..f8462513 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -10,8 +10,8 @@ msgstr ""
"Project-Id-Version: MATE Desktop Environment\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-12 18:09+0200\n"
-"PO-Revision-Date: 2014-10-12 16:41+0000\n"
-"Last-Translator: Evolve32 <[email protected]>\n"
+"PO-Revision-Date: 2015-01-29 08:59+0000\n"
+"Last-Translator: AlexL <[email protected]>\n"
"Language-Team: Russian (http://www.transifex.com/projects/p/MATE/language/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
diff --git a/po/sk.po b/po/sk.po
index 33764e2f..bc60b66f 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -3,14 +3,14 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# Ján Ďanovský <[email protected]>, 2013-2014
+# Ján Ďanovský <[email protected]>, 2013-2015
# Tibor Kaputa <[email protected]>, 2014
msgid ""
msgstr ""
"Project-Id-Version: MATE Desktop Environment\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-12 18:09+0200\n"
-"PO-Revision-Date: 2014-10-12 17:27+0000\n"
+"PO-Revision-Date: 2015-03-19 16:55+0000\n"
"Last-Translator: Ján Ďanovský <[email protected]>\n"
"Language-Team: Slovak (http://www.transifex.com/projects/p/MATE/language/sk/)\n"
"MIME-Version: 1.0\n"
@@ -145,7 +145,7 @@ msgstr "Prepnúť na naposledy vybratú pracovnú plochu"
#: ../src/50-marco-window-key.xml.in.h:2
msgid "Activate the window menu"
-msgstr "Aktivovať ponuku okna"
+msgstr "Aktivovať menu okna"
#: ../src/50-marco-window-key.xml.in.h:3
msgid "Toggle fullscreen mode"
@@ -707,7 +707,7 @@ msgstr "Zavrieť okno"
#: ../src/ui/frames.c:1202
msgid "Window Menu"
-msgstr "Ponuka okna"
+msgstr "Menu okna"
#: ../src/ui/frames.c:1205
msgid "Minimize Window"
@@ -1597,7 +1597,7 @@ msgstr "Paleta nástrojov"
#: ../src/ui/theme-viewer.c:396
msgid "Torn-off Menu"
-msgstr "Vypnúť ponuku"
+msgstr "Odtrhnúť menu"
#: ../src/ui/theme-viewer.c:400
msgid "Border"
diff --git a/po/sl.po b/po/sl.po
index 4a7eef41..443d0b9f 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -5,13 +5,14 @@
# Translators:
# Damir Jerovšek <[email protected]>, 2013
# Marko Šterman <[email protected]>, 2012
+# worm <[email protected]>, 2015
msgid ""
msgstr ""
"Project-Id-Version: MATE Desktop Environment\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-12 18:09+0200\n"
-"PO-Revision-Date: 2014-10-12 16:11+0000\n"
-"Last-Translator: Stefano Karapetsas <[email protected]>\n"
+"PO-Revision-Date: 2015-03-11 21:48+0000\n"
+"Last-Translator: worm <[email protected]>\n"
"Language-Team: Slovenian (http://www.transifex.com/projects/p/MATE/language/sl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -141,7 +142,7 @@ msgstr "Preklopi na delovno površino pod trenutno delovno površino"
#: ../src/50-marco-global-key.xml.in.h:25
msgid "Switch to previously selected workspace"
-msgstr ""
+msgstr "Preklopite na predhodno izbran delovni prostor"
#: ../src/50-marco-window-key.xml.in.h:2
msgid "Activate the window menu"
@@ -209,39 +210,39 @@ msgstr "Razpni okno vodoravno"
#: ../src/50-marco-window-key.xml.in.h:18
msgid "Move window to north-west (top left) corner"
-msgstr ""
+msgstr "Premakni okno v severno-zahodni (zgornji levi) kot"
#: ../src/50-marco-window-key.xml.in.h:19
msgid "Move window to north-east (top right) corner"
-msgstr ""
+msgstr "Premakni okno v severno-vzhodnji (zgornji desni) kot"
#: ../src/50-marco-window-key.xml.in.h:20
msgid "Move window to south-west (bottom left) corner"
-msgstr ""
+msgstr "Premakni okno v južno-zahodni (spodnji levi) kot"
#: ../src/50-marco-window-key.xml.in.h:21
msgid "Move window to south-east (bottom right) corner"
-msgstr ""
+msgstr "Premakni okno v južno-vzhodnji (spodnji desni) kot"
#: ../src/50-marco-window-key.xml.in.h:22
msgid "Move window to north (top) side of screen"
-msgstr ""
+msgstr "Premakni okno na severni (zgornji) del zaslona"
#: ../src/50-marco-window-key.xml.in.h:23
msgid "Move window to south (bottom) side of screen"
-msgstr ""
+msgstr "Premakni okno na južni (spodnji) del zaslona"
#: ../src/50-marco-window-key.xml.in.h:24
msgid "Move window to east (right) side of screen"
-msgstr ""
+msgstr "Premakni okno na vzhodnji (desni) del zaslona"
#: ../src/50-marco-window-key.xml.in.h:25
msgid "Move window to west (left) side of screen"
-msgstr ""
+msgstr "Premakni okno na zahodnji (levi) del zaslona"
#: ../src/50-marco-window-key.xml.in.h:26
msgid "Move window to center of screen"
-msgstr ""
+msgstr "Premakni okno v središče zaslona"
#: ../src/50-marco-window-key.xml.in.h:27
msgid "Move window to workspace 1"
diff --git a/po/sq.po b/po/sq.po
index f4ce98ee..e5ed45bb 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -4,13 +4,14 @@
#
# Translators:
# Ardit Dani <[email protected]>, 2014
+# Indrit Bashkimi <[email protected]>, 2015
msgid ""
msgstr ""
"Project-Id-Version: MATE Desktop Environment\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-12 18:09+0200\n"
-"PO-Revision-Date: 2014-10-12 16:11+0000\n"
-"Last-Translator: Stefano Karapetsas <[email protected]>\n"
+"PO-Revision-Date: 2015-04-09 12:21+0000\n"
+"Last-Translator: Indrit Bashkimi <[email protected]>\n"
"Language-Team: Albanian (http://www.transifex.com/projects/p/MATE/language/sq/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -140,7 +141,7 @@ msgstr "Kaloni në hapësirën e punës poshtë hapësires aktuale e punës"
#: ../src/50-marco-global-key.xml.in.h:25
msgid "Switch to previously selected workspace"
-msgstr ""
+msgstr "Kalo tek hapësira e punës e zgjedhur më parë"
#: ../src/50-marco-window-key.xml.in.h:2
msgid "Activate the window menu"
@@ -208,39 +209,39 @@ msgstr "Maksimizo dritaren horizontalisht"
#: ../src/50-marco-window-key.xml.in.h:18
msgid "Move window to north-west (top left) corner"
-msgstr ""
+msgstr "Lëvize dritaren në këndin veri-perëndimor (lart majtas)"
#: ../src/50-marco-window-key.xml.in.h:19
msgid "Move window to north-east (top right) corner"
-msgstr ""
+msgstr "Lëvize dritaren në këndin veri-lindor (lart djathtas)"
#: ../src/50-marco-window-key.xml.in.h:20
msgid "Move window to south-west (bottom left) corner"
-msgstr ""
+msgstr "Lëvize dritaren në këndin jug-perëndimor (poshtë majtas)"
#: ../src/50-marco-window-key.xml.in.h:21
msgid "Move window to south-east (bottom right) corner"
-msgstr ""
+msgstr "Lëvize dritaren në këndin jug-lindor (poshtë djathtas)"
#: ../src/50-marco-window-key.xml.in.h:22
msgid "Move window to north (top) side of screen"
-msgstr ""
+msgstr "Lëvize dritaren në anën veriore (lart) të ekranit"
#: ../src/50-marco-window-key.xml.in.h:23
msgid "Move window to south (bottom) side of screen"
-msgstr ""
+msgstr "Lëvize dritaren në anën jugore (poshtë) të ekranit"
#: ../src/50-marco-window-key.xml.in.h:24
msgid "Move window to east (right) side of screen"
-msgstr ""
+msgstr "Lëvize dritaren në anën lindore (djathtas) të ekranit"
#: ../src/50-marco-window-key.xml.in.h:25
msgid "Move window to west (left) side of screen"
-msgstr ""
+msgstr "Lëvize dritaren në anën perëndimore (majtas) të ekranit"
#: ../src/50-marco-window-key.xml.in.h:26
msgid "Move window to center of screen"
-msgstr ""
+msgstr "Lëvize dritaren në qendër të ekranit"
#: ../src/50-marco-window-key.xml.in.h:27
msgid "Move window to workspace 1"
diff --git a/po/sv.po b/po/sv.po
index 329d4844..64fa583b 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -3,14 +3,15 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
+# Kristoffer Grundström <[email protected]>, 2015
# Patrik Nilsson <[email protected]>, 2014
msgid ""
msgstr ""
"Project-Id-Version: MATE Desktop Environment\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-12 18:09+0200\n"
-"PO-Revision-Date: 2014-10-12 16:11+0000\n"
-"Last-Translator: Stefano Karapetsas <[email protected]>\n"
+"PO-Revision-Date: 2015-05-28 21:32+0000\n"
+"Last-Translator: Kristoffer Grundström <[email protected]>\n"
"Language-Team: Swedish (http://www.transifex.com/projects/p/MATE/language/sv/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -140,7 +141,7 @@ msgstr "Växla till arbetsytan nedanför den aktuella arbetsytan"
#: ../src/50-marco-global-key.xml.in.h:25
msgid "Switch to previously selected workspace"
-msgstr ""
+msgstr "Byt till den tidigare valda arbetsytan"
#: ../src/50-marco-window-key.xml.in.h:2
msgid "Activate the window menu"
diff --git a/po/tk.po b/po/tk.po
index ede11fe6..1162bbfd 100644
--- a/po/tk.po
+++ b/po/tk.po
@@ -6,30 +6,310 @@
msgid ""
msgstr ""
"Project-Id-Version: MATE Desktop Environment\n"
-"Report-Msgid-Bugs-To: https://github.com/mate-desktop/\n"
-"POT-Creation-Date: 2011-12-28 10:53+0100\n"
-"PO-Revision-Date: 2011-12-28 10:26+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-10-12 18:09+0200\n"
+"PO-Revision-Date: 2014-10-12 16:11+0000\n"
"Last-Translator: Stefano Karapetsas <[email protected]>\n"
-"Language-Team: LANGUAGE <[email protected]>\n"
+"Language-Team: Turkmen (http://www.transifex.com/projects/p/MATE/language/tk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: tk\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../src/50-marco-desktop-key.xml.in.h:1
msgid "Desktop"
msgstr ""
-#: ../src/50-marco-key.xml.in.h:1
+#: ../src/50-marco-desktop-key.xml.in.h:2
+msgid "Show the panel's \"Run Application\" dialog box"
+msgstr ""
+
+#: ../src/50-marco-desktop-key.xml.in.h:3
+msgid "Show the panel's main menu"
+msgstr ""
+
+#: ../src/50-marco-desktop-key.xml.in.h:4
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../src/50-marco-desktop-key.xml.in.h:5
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../src/50-marco-desktop-key.xml.in.h:6
+msgid "Run a terminal"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:1 ../src/50-marco-window-key.xml.in.h:1
msgid "Window Management"
msgstr ""
+#: ../src/50-marco-global-key.xml.in.h:2
+msgid "Move between windows, using a popup window"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:3
+msgid "Move between windows of an application, using a popup window"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:4
+msgid "Move between panels and the desktop, using a popup window"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:5
+msgid "Move between windows immediately"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:6
+msgid "Move between windows of an application immediately"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:7
+msgid "Move between panels and the desktop immediately"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:8
+msgid "Hide all normal windows and set focus to the desktop"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:9
+msgid "Switch to workspace 1"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:10
+msgid "Switch to workspace 2"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:11
+msgid "Switch to workspace 3"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:12
+msgid "Switch to workspace 4"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:13
+msgid "Switch to workspace 5"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:14
+msgid "Switch to workspace 6"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:15
+msgid "Switch to workspace 7"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:16
+msgid "Switch to workspace 8"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:17
+msgid "Switch to workspace 9"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:18
+msgid "Switch to workspace 10"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:19
+msgid "Switch to workspace 11"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:20
+msgid "Switch to workspace 12"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:21
+msgid "Switch to workspace on the left of the current workspace"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:22
+msgid "Switch to workspace on the right of the current workspace"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:23
+msgid "Switch to workspace above the current workspace"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:24
+msgid "Switch to workspace below the current workspace"
+msgstr ""
+
+#: ../src/50-marco-global-key.xml.in.h:25
+msgid "Switch to previously selected workspace"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:2
+msgid "Activate the window menu"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:3
+msgid "Toggle fullscreen mode"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:4
+msgid "Toggle maximization state"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:5
+msgid "Maximize window"
+msgstr "Äpişgäni Ulalt"
+
+#: ../src/50-marco-window-key.xml.in.h:6
+msgid "Restore window"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:7
+msgid "Toggle shaded state"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:8
+msgid "Close window"
+msgstr "Äpişgäni Bagla"
+
+#: ../src/50-marco-window-key.xml.in.h:9
+msgid "Minimize window"
+msgstr "Äpişgäni Kiçelt"
+
+#: ../src/50-marco-window-key.xml.in.h:10
+msgid "Move window"
+msgstr "Äpişgäni Göçir"
+
+#: ../src/50-marco-window-key.xml.in.h:11
+msgid "Resize window"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:12
+msgid "Toggle whether window is on all workspaces or just one"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:13
+msgid "Raise window if it's covered by another window, otherwise lower it"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:14
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:15
+msgid "Lower window below other windows"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:16
+msgid "Maximize window vertically"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:17
+msgid "Maximize window horizontally"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:18
+msgid "Move window to north-west (top left) corner"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:19
+msgid "Move window to north-east (top right) corner"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:20
+msgid "Move window to south-west (bottom left) corner"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:21
+msgid "Move window to south-east (bottom right) corner"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:22
+msgid "Move window to north (top) side of screen"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:23
+msgid "Move window to south (bottom) side of screen"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:24
+msgid "Move window to east (right) side of screen"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:25
+msgid "Move window to west (left) side of screen"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:26
+msgid "Move window to center of screen"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:27
+msgid "Move window to workspace 1"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:28
+msgid "Move window to workspace 2"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:29
+msgid "Move window to workspace 3"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:30
+msgid "Move window to workspace 4"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:31
+msgid "Move window to workspace 5"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:32
+msgid "Move window to workspace 6"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:33
+msgid "Move window to workspace 7"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:34
+msgid "Move window to workspace 8"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:35
+msgid "Move window to workspace 9"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:36
+msgid "Move window to workspace 10"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:37
+msgid "Move window to workspace 11"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:38
+msgid "Move window to workspace 12"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:39
+msgid "Move window one workspace to the left"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:40
+msgid "Move window one workspace to the right"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:41
+msgid "Move window one workspace up"
+msgstr ""
+
+#: ../src/50-marco-window-key.xml.in.h:42
+msgid "Move window one workspace down"
+msgstr ""
+
#: ../src/core/bell.c:294
msgid "Bell event"
msgstr ""
-#: ../src/core/core.c:206
+#: ../src/core/core.c:207
#, c-format
msgid "Unknown window information request: %d"
msgstr ""
@@ -59,17 +339,17 @@ msgstr ""
msgid "Failed to get hostname: %s\n"
msgstr ""
-#: ../src/core/display.c:266
+#: ../src/core/display.c:268
#, c-format
msgid "Missing %s extension required for compositing"
msgstr ""
-#: ../src/core/display.c:344
+#: ../src/core/display.c:346
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr ""
-#: ../src/core/errors.c:272
+#: ../src/core/errors.c:313
#, c-format
msgid ""
"Lost connection to the display '%s';\n"
@@ -77,7 +357,7 @@ msgid ""
"the window manager.\n"
msgstr ""
-#: ../src/core/errors.c:279
+#: ../src/core/errors.c:320
#, c-format
msgid "Fatal IO error %d (%s) on display '%s'.\n"
msgstr ""
@@ -91,8 +371,7 @@ msgstr ""
#. Displayed when a keybinding which is
#. * supposed to launch a program fails.
-#.
-#: ../src/core/keybindings.c:2294
+#: ../src/core/keybindings.c:2307
#, c-format
msgid ""
"There was an error running <tt>%s</tt>:\n"
@@ -100,17 +379,17 @@ msgid ""
"%s"
msgstr ""
-#: ../src/core/keybindings.c:2383
+#: ../src/core/keybindings.c:2396
#, c-format
msgid "No command %d has been defined.\n"
msgstr ""
-#: ../src/core/keybindings.c:3337
+#: ../src/core/keybindings.c:3356
#, c-format
msgid "No terminal command has been defined.\n"
msgstr ""
-#: ../src/core/main.c:131
+#: ../src/core/main.c:137
#, c-format
msgid ""
"marco %s\n"
@@ -119,230 +398,176 @@ msgid ""
"There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
msgstr ""
-#: ../src/core/main.c:269
+#: ../src/core/main.c:275
msgid "Disable connection to session manager"
msgstr ""
-#: ../src/core/main.c:275
+#: ../src/core/main.c:281
msgid "Replace the running window manager with Marco"
msgstr ""
-#: ../src/core/main.c:281
+#: ../src/core/main.c:287
msgid "Specify session management ID"
msgstr ""
-#: ../src/core/main.c:286
+#: ../src/core/main.c:292
msgid "X Display to use"
msgstr ""
-#: ../src/core/main.c:292
+#: ../src/core/main.c:298
msgid "Initialize session from savefile"
msgstr ""
-#: ../src/core/main.c:298
+#: ../src/core/main.c:304
msgid "Print version"
msgstr ""
-#: ../src/core/main.c:304
+#: ../src/core/main.c:310
msgid "Make X calls synchronous"
msgstr ""
-#: ../src/core/main.c:310
+#: ../src/core/main.c:316
msgid "Turn compositing on"
msgstr ""
-#: ../src/core/main.c:316
+#: ../src/core/main.c:322
msgid "Turn compositing off"
msgstr ""
-#: ../src/core/main.c:322
+#: ../src/core/main.c:328
msgid ""
"Don't make fullscreen windows that are maximized and have no decorations"
msgstr ""
-#: ../src/core/main.c:528
+#: ../src/core/main.c:537
#, c-format
msgid "Failed to scan themes directory: %s\n"
msgstr ""
-#: ../src/core/main.c:544
+#: ../src/core/main.c:553
#, c-format
msgid ""
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
msgstr ""
-#: ../src/core/main.c:603
+#: ../src/core/main.c:612
#, c-format
msgid "Failed to restart: %s\n"
msgstr ""
-#. * We found it, but it was invalid. Complain.
-#. *
-#. * FIXME: This replicates the original behaviour, but in the future
-#. * we might consider reverting invalid keys to their original values.
-#. * (We know the old value, so we can look up a suitable string in
-#. * the symtab.)
-#. *
-#. * (Empty comment follows so the translators don't see this.)
-#.
-#.
-#: ../src/core/prefs.c:508 ../src/core/prefs.c:663
+#. FIXME: check if this can be avoided by GSettings
+#. FIXME! GSettings, instead of MateConf, has Minimum/Maximun in schema!
+#. * But some preferences depends on costants for minimum/maximum values
+#: ../src/core/prefs.c:573 ../src/core/prefs.c:726
#, c-format
-msgid "MateConf key '%s' is set to an invalid value\n"
+msgid "%d stored in GSettings key %s is out of range %d to %d\n"
msgstr ""
-#: ../src/core/prefs.c:589 ../src/core/prefs.c:832
-#, c-format
-msgid "%d stored in MateConf key %s is out of range %d to %d\n"
-msgstr ""
-
-#: ../src/core/prefs.c:633 ../src/core/prefs.c:710 ../src/core/prefs.c:758
-#: ../src/core/prefs.c:822 ../src/core/prefs.c:1115 ../src/core/prefs.c:1131
-#: ../src/core/prefs.c:1148 ../src/core/prefs.c:1164
-#, c-format
-msgid "MateConf key \"%s\" is set to an invalid type\n"
-msgstr ""
-
-#: ../src/core/prefs.c:1234
+#: ../src/core/prefs.c:1023
msgid ""
"Workarounds for broken applications disabled. Some applications may not "
"behave properly.\n"
msgstr ""
-#: ../src/core/prefs.c:1305
+#: ../src/core/prefs.c:1090
#, c-format
-msgid "Could not parse font description \"%s\" from MateConf key %s\n"
+msgid "Could not parse font description \"%s\" from GSettings key %s\n"
msgstr ""
-#: ../src/core/prefs.c:1367
+#: ../src/core/prefs.c:1152
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for mouse button"
" modifier\n"
msgstr ""
-#: ../src/core/prefs.c:1788
-#, c-format
-msgid "Error setting number of workspaces to %d: %s\n"
-msgstr ""
-
-#: ../src/core/prefs.c:1953 ../src/core/prefs.c:2456
-#, c-format
-msgid "Workspace %d"
-msgstr ""
-
-#: ../src/core/prefs.c:1983 ../src/core/prefs.c:2161
+#: ../src/core/prefs.c:1670
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for keybinding "
"\"%s\"\n"
msgstr ""
-#: ../src/core/prefs.c:2537
+#: ../src/core/prefs.c:1973
#, c-format
-msgid "Error setting name for workspace %d to \"%s\": %s\n"
-msgstr ""
-
-#: ../src/core/prefs.c:2741
-#, c-format
-msgid "Error setting compositor status: %s\n"
+msgid "Workspace %d"
msgstr ""
-#: ../src/core/screen.c:357
+#: ../src/core/screen.c:358
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr ""
-#: ../src/core/screen.c:373
+#: ../src/core/screen.c:374
#, c-format
msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the "
"--replace option to replace the current window manager.\n"
msgstr ""
-#: ../src/core/screen.c:400
+#: ../src/core/screen.c:401
#, c-format
msgid "Could not acquire window manager selection on screen %d display \"%s\"\n"
msgstr ""
-#: ../src/core/screen.c:458
+#: ../src/core/screen.c:459
#, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr ""
-#: ../src/core/screen.c:668
+#: ../src/core/screen.c:672
#, c-format
msgid "Could not release screen %d on display \"%s\"\n"
msgstr ""
-#. Translators: Please don't translate "Control", "Shift", etc, since these
-#. * are hardcoded (in gtk/gtkaccelgroup.c; it's not marco's fault).
-#. * "disabled" must also stay as it is.
-#.
-#: ../src/core/schema-bindings.c:169
-msgid ""
-"The format looks like \"<Control>a\" or \"<Shift><Alt>F1\".\n"
-"\n"
-"The parser is fairly liberal and allows lower or upper case, and also abbreviations such as \"<Ctl>\" and \"<Ctrl>\". If you set the option to the special string \"disabled\", then there will be no keybinding for this action."
-msgstr ""
-
-#: ../src/core/schema-bindings.c:177
-msgid ""
-"The format looks like \"<Control>a\" or \"<Shift><Alt>F1\".\n"
-"\n"
-"The parser is fairly liberal and allows lower or upper case, and also abbreviations such as \"<Ctl>\" and \"<Ctrl>\". If you set the option to the special string \"disabled\", then there will be no keybinding for this action.\n"
-"\n"
-"This keybinding may be reversed by holding down the \"shift\" key; therefore, \"shift\" cannot be one of the keys it uses."
-msgstr ""
-
-#: ../src/core/session.c:850 ../src/core/session.c:857
+#: ../src/core/session.c:842 ../src/core/session.c:849
#, c-format
msgid "Could not create directory '%s': %s\n"
msgstr ""
-#: ../src/core/session.c:867
+#: ../src/core/session.c:859
#, c-format
msgid "Could not open session file '%s' for writing: %s\n"
msgstr ""
-#: ../src/core/session.c:1008
+#: ../src/core/session.c:1000
#, c-format
msgid "Error writing session file '%s': %s\n"
msgstr ""
-#: ../src/core/session.c:1013
+#: ../src/core/session.c:1005
#, c-format
msgid "Error closing session file '%s': %s\n"
msgstr ""
-#: ../src/core/session.c:1143
+#: ../src/core/session.c:1135
#, c-format
msgid "Failed to parse saved session file: %s\n"
msgstr ""
-#: ../src/core/session.c:1192
+#: ../src/core/session.c:1184
#, c-format
msgid "<marco_session> attribute seen but we already have the session ID"
msgstr ""
-#: ../src/core/session.c:1205 ../src/core/session.c:1280
-#: ../src/core/session.c:1312 ../src/core/session.c:1384
-#: ../src/core/session.c:1444
+#: ../src/core/session.c:1197 ../src/core/session.c:1272
+#: ../src/core/session.c:1304 ../src/core/session.c:1376
+#: ../src/core/session.c:1436
#, c-format
msgid "Unknown attribute %s on <%s> element"
msgstr ""
-#: ../src/core/session.c:1222
+#: ../src/core/session.c:1214
#, c-format
msgid "nested <window> tag"
msgstr ""
-#: ../src/core/session.c:1464
+#: ../src/core/session.c:1456
#, c-format
msgid "Unknown element %s"
msgstr ""
-#: ../src/core/session.c:1816
+#: ../src/core/session.c:1808
msgid ""
"These windows do not support &quot;save current setup&quot; and will have to"
" be restarted manually next time you log in."
@@ -385,14 +610,13 @@ msgid "Window manager error: "
msgstr ""
#. Translators: This is the title used on dialog boxes
-#. eof all-keybindings.h
#: ../src/core/util.c:570 ../src/marco.desktop.in.h:1
#: ../src/marco-wm.desktop.in.h:1
msgid "Marco"
msgstr "Marco"
#. first time through
-#: ../src/core/window.c:5660
+#: ../src/core/window.c:5766
#, c-format
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@@ -405,46 +629,45 @@ msgstr ""
#. * leads to e.g. us not fullscreening their windows. Apps that set
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
-#.
-#: ../src/core/window.c:6225
+#: ../src/core/window.c:6331
#, c-format
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
"%d x %d and max size %d x %d; this doesn't make much sense.\n"
msgstr ""
-#: ../src/core/window-props.c:244
+#: ../src/core/window-props.c:252
#, c-format
msgid "Application set a bogus _NET_WM_PID %lu\n"
msgstr ""
#. Translators: the title of a window from another machine
-#: ../src/core/window-props.c:388
+#: ../src/core/window-props.c:396
#, c-format
msgid "%s (on %s)"
msgstr ""
#. Simple case-- don't bother to look it up. It's root.
-#: ../src/core/window-props.c:420
+#: ../src/core/window-props.c:428
#, c-format
msgid "%s (as superuser)"
msgstr ""
#. Translators: the title of a window owned by another user
#. * on this machine
-#: ../src/core/window-props.c:438
+#: ../src/core/window-props.c:446
#, c-format
msgid "%s (as %s)"
msgstr ""
#. Translators: the title of a window owned by another user
#. * on this machine, whose name we don't know
-#: ../src/core/window-props.c:444
+#: ../src/core/window-props.c:452
#, c-format
msgid "%s (as another user)"
msgstr ""
-#: ../src/core/window-props.c:1430
+#: ../src/core/window-props.c:1438
#, c-format
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
msgstr ""
@@ -471,698 +694,52 @@ msgid ""
"list\n"
msgstr ""
-#: ../src/include/all-keybindings.h:88
-msgid "Switch to workspace 1"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:90
-msgid "Switch to workspace 2"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:92
-msgid "Switch to workspace 3"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:94
-msgid "Switch to workspace 4"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:96
-msgid "Switch to workspace 5"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:98
-msgid "Switch to workspace 6"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:100
-msgid "Switch to workspace 7"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:102
-msgid "Switch to workspace 8"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:104
-msgid "Switch to workspace 9"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:106
-msgid "Switch to workspace 10"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:108
-msgid "Switch to workspace 11"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:110
-msgid "Switch to workspace 12"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:122
-msgid "Switch to workspace on the left of the current workspace"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:126
-msgid "Switch to workspace on the right of the current workspace"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:130
-msgid "Switch to workspace above the current workspace"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:134
-msgid "Switch to workspace below the current workspace"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:150
-msgid "Move between windows of an application, using a popup window"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:153
-msgid "Move backward between windows of an application, using a popup window"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:157
-msgid "Move between windows, using a popup window"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:160
-msgid "Move backward between windows, using a popup window"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:163
-msgid "Move between panels and the desktop, using a popup window"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:166
-msgid "Move backward between panels and the desktop, using a popup window"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:171
-msgid "Move between windows of an application immediately"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:174
-msgid "Move backward between windows of an application immediately"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:177
-msgid "Move between windows immediately"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:180
-msgid "Move backward between windows immediately"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:183
-msgid "Move between panels and the desktop immediately"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:186
-msgid "Move backward between panels and the desktop immediately"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:191
-msgid "Hide all normal windows and set focus to the desktop"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:194
-msgid "Show the panel's main menu"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:197
-msgid "Show the panel's \"Run Application\" dialog box"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:238
-msgid "Take a screenshot"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:240
-msgid "Take a screenshot of a window"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:242
-msgid "Run a terminal"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:257
-msgid "Activate the window menu"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:260
-msgid "Toggle fullscreen mode"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:262
-msgid "Toggle maximization state"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:264
-msgid "Toggle whether a window will always be visible over other windows"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:266
-msgid "Maximize window"
-msgstr "Äpişgäni Ulalt"
-
-#: ../src/include/all-keybindings.h:268
-msgid "Restore window"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:270
-msgid "Toggle shaded state"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:272
-msgid "Minimize window"
-msgstr "Äpişgäni Kiçelt"
-
-#: ../src/include/all-keybindings.h:274
-msgid "Close window"
-msgstr "Äpişgäni Bagla"
-
-#: ../src/include/all-keybindings.h:276
-msgid "Move window"
-msgstr "Äpişgäni Göçir"
-
-#: ../src/include/all-keybindings.h:278
-msgid "Resize window"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:281
-msgid "Toggle whether window is on all workspaces or just one"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:285
-msgid "Move window to workspace 1"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:288
-msgid "Move window to workspace 2"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:291
-msgid "Move window to workspace 3"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:294
-msgid "Move window to workspace 4"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:297
-msgid "Move window to workspace 5"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:300
-msgid "Move window to workspace 6"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:303
-msgid "Move window to workspace 7"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:306
-msgid "Move window to workspace 8"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:309
-msgid "Move window to workspace 9"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:312
-msgid "Move window to workspace 10"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:315
-msgid "Move window to workspace 11"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:318
-msgid "Move window to workspace 12"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:330
-msgid "Move window one workspace to the left"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:333
-msgid "Move window one workspace to the right"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:336
-msgid "Move window one workspace up"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:339
-msgid "Move window one workspace down"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:342
-msgid "Raise window if it's covered by another window, otherwise lower it"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:344
-msgid "Raise window above other windows"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:346
-msgid "Lower window below other windows"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:350
-msgid "Maximize window vertically"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:354
-msgid "Maximize window horizontally"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:358
-msgid "Move window to north-west (top left) corner"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:361
-msgid "Move window to north-east (top right) corner"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:364
-msgid "Move window to south-west (bottom left) corner"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:367
-msgid "Move window to south-east (bottom right) corner"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:371
-msgid "Move window to north (top) side of screen"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:374
-msgid "Move window to south (bottom) side of screen"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:377
-msgid "Move window to east (right) side of screen"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:380
-msgid "Move window to west (left) side of screen"
-msgstr ""
-
-#: ../src/include/all-keybindings.h:383
-msgid "Move window to center of screen"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:1
-msgid ""
-"(Not implemented) Navigation works in terms of applications not windows"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:2
-msgid ""
-"A font description string describing a font for window titlebars. The size "
-"from the description will only be used if the titlebar_font_size option is "
-"set to 0. Also, this option is disabled if the titlebar_uses_desktop_font "
-"option is set to true."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:3
-msgid "Action on title bar double-click"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:4
-msgid "Action on title bar middle-click"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:5
-msgid "Action on title bar right-click"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:6
-msgid "Arrangement of buttons on the titlebar"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:7
-msgid ""
-"Arrangement of buttons on the titlebar. The value should be a string, such "
-"as \"menu:minimize,maximize,spacer,close\"; the colon separates the left "
-"corner of the window from the right corner, and the button names are comma-"
-"separated. Duplicate buttons are not allowed. Unknown button names are "
-"silently ignored so that buttons can be added in future marco versions "
-"without breaking older versions. A special spacer tag can be used to insert "
-"some space between two adjacent buttons."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:8
-msgid "Automatically raises the focused window"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:9
-msgid ""
-"Clicking a window while holding down this modifier key will move the window "
-"(left click), resize the window (middle click), or show the window menu "
-"(right click). The middle and right click operations may be swapped using "
-"the \"resize_with_right_button\" key. Modifier is expressed as "
-"\"&lt;Alt&gt;\" or \"&lt;Super&gt;\" for example."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:10
-msgid "Commands to run in response to keybindings"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:11
-msgid "Compositing Manager"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:12
-msgid "Control how new windows get focus"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:13
-msgid "Current theme"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:14
-msgid "Delay in milliseconds for the auto raise option"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:15
-msgid "Determines whether Marco is a compositing manager."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:16
-msgid ""
-"Determines whether applications or the system can generate audible 'beeps'; "
-"may be used in conjunction with 'visual bell' to allow silent 'beeps'."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:17
-msgid "Disable misfeatures that are required by old or broken applications"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:18
-msgid "Enable Visual Bell"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:19
-msgid ""
-"If set to true, and the focus mode is either \"sloppy\" or \"mouse\" then "
-"the focused window will be automatically raised after a delay specified by "
-"the auto_raise_delay key. This is not related to clicking on a window to "
-"raise it, nor to entering a window during drag-and-drop."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:20
-msgid ""
-"If true, ignore the titlebar_font option, and use the standard application "
-"font for window titles."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:21
-msgid ""
-"If true, marco will give the user less feedback by using wireframes, "
-"avoiding animations, or other means. This is a significant reduction in "
-"usability for many users, but may allow legacy applications to continue "
-"working, and may also be a useful tradeoff for terminal servers. However, "
-"the wireframe feature is disabled when accessibility is on."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:22
-msgid ""
-"If true, then Marco works in terms of applications rather than windows. The "
-"concept is a bit abstract, but in general an application-based setup is more"
-" like the Mac and less like Windows. When you focus a window in application-"
-"based mode, all the windows in the application will be raised. Also, in "
-"application-based mode, focus clicks are not passed through to windows in "
-"other applications. Application-based mode is, however, largely "
-"unimplemented at the moment."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:23
-msgid "If true, trade off usability for less resource usage"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:24
-msgid "Modifier to use for modified window click actions"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:25
-msgid "Name of workspace"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:26
-msgid "Number of workspaces"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:27
-msgid ""
-"Number of workspaces. Must be more than zero, and has a fixed maximum to "
-"prevent making the desktop unusable by accidentally asking for too many "
-"workspaces."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:28
-msgid "Run a defined command"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:29
-msgid ""
-"Set this to true to resize with the right button and show a menu with the "
-"middle button while holding down the key given in \"mouse_button_modifier\";"
-" set it to false to make it work the opposite way around."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:30
-msgid ""
-"Setting this option to false can lead to buggy behavior, so users are "
-"strongly discouraged from changing it from the default of true. Many actions"
-" (e.g. clicking in the client area, moving or resizing the window) normally "
-"raise the window as a side-effect. Setting this option to false, which is "
-"strongly discouraged, will decouple raising from other user actions, and "
-"ignore raise requests generated by applications. See "
-"http://bugzilla.gnome.org/show_bug.cgi?id=445447#c6. Even when this option "
-"is false, windows can still be raised by an alt-left-click anywhere on the "
-"window, a normal click on the window decorations, or by special messages "
-"from pagers, such as activation requests from tasklist applets. This option "
-"is currently disabled in click-to-focus mode. Note that the list of ways to "
-"raise windows when raise_on_click is false does not include programmatic "
-"requests from applications to raise windows; such requests will be ignored "
-"regardless of the reason for the request. If you are an application "
-"developer and have a user complaining that your application does not work "
-"with this setting disabled, tell them it is _their_ fault for breaking their"
-" window manager and that they need to change this option back to true or "
-"live with the \"bug\" they requested."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:31
-msgid ""
-"Some applications disregard specifications in ways that result in window "
-"manager misfeatures. This option puts Marco in a rigorously correct mode, "
-"which gives a more consistent user interface, provided one does not need to "
-"run any misbehaving applications."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:32
-msgid "System Bell is Audible"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:33
-msgid ""
-"Tells Marco how to implement the visual indication that the system bell or "
-"another application 'bell' indicator has been rung. Currently there are two "
-"valid values, \"fullscreen\", which causes a fullscreen white-black flash, "
-"and \"frame_flash\" which causes the titlebar of the application which sent "
-"the bell signal to flash. If the application which sent the bell is unknown "
-"(as is usually the case for the default \"system beep\"), the currently "
-"focused window's titlebar is flashed."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:34
-msgid ""
-"The /apps/marco/global_keybindings/run_command_N keys define keybindings "
-"that correspond to these commands. Pressing the keybinding for run_command_N"
-" will execute command_N."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:35
-msgid ""
-"The /apps/marco/global_keybindings/run_command_screenshot key defines a "
-"keybinding which causes the command specified by this setting to be invoked."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:36
-msgid ""
-"The /apps/marco/global_keybindings/run_command_window_screenshot key defines"
-" a keybinding which causes the command specified by this setting to be "
-"invoked."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:37
-msgid ""
-"The keybinding that runs the correspondingly-numbered command in "
-"/apps/marco/keybinding_commands The format looks like \"&lt;Control&gt;a\" "
-"or \"&lt;Shift&gt;&lt;Alt&gt;F1\". The parser is fairly liberal and allows "
-"lower or upper case, and also abbreviations such as \"&lt;Ctl&gt;\" and "
-"\"&lt;Ctrl&gt;\". If you set the option to the special string \"disabled\", "
-"then there will be no keybinding for this action."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:38
-msgid "The name of a workspace."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:39
-msgid "The screenshot command"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:40
-msgid ""
-"The theme determines the appearance of window borders, titlebar, and so "
-"forth."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:41
-msgid ""
-"The time delay before raising a window if auto_raise is set to true. The "
-"delay is given in thousandths of a second."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:42
-msgid ""
-"The window focus mode indicates how windows are activated. It has three "
-"possible values; \"click\" means windows must be clicked in order to focus "
-"them, \"sloppy\" means windows are focused when the mouse enters the window,"
-" and \"mouse\" means windows are focused when the mouse enters the window "
-"and unfocused when the mouse leaves the window."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:43
-msgid "The window screenshot command"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:44
-msgid ""
-"This option determines the effects of double-clicking on the title bar. "
-"Current valid options are 'toggle_shade', which will shade/unshade the "
-"window, 'toggle_maximize' which will maximize/unmaximize the window, "
-"'toggle_maximize_horizontally' and 'toggle_maximize_vertically' which will "
-"maximize/unmaximize the window in that direction only, 'minimize' which will"
-" minimize the window, 'shade' which will roll the window up, 'menu' which "
-"will display the window menu, 'lower' which will put the window behind all "
-"the others, and 'none' which will not do anything."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:45
-msgid ""
-"This option determines the effects of middle-clicking on the title bar. "
-"Current valid options are 'toggle_shade', which will shade/unshade the "
-"window, 'toggle_maximize' which will maximize/unmaximize the window, "
-"'toggle_maximize_horizontally' and 'toggle_maximize_vertically' which will "
-"maximize/unmaximize the window in that direction only, 'minimize' which will"
-" minimize the window, 'shade' which will roll the window up, 'menu' which "
-"will display the window menu, 'lower' which will put the window behind all "
-"the others, and 'none' which will not do anything."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:46
-msgid ""
-"This option determines the effects of right-clicking on the title bar. "
-"Current valid options are 'toggle_shade', which will shade/unshade the "
-"window, 'toggle_maximize' which will maximize/unmaximize the window, "
-"'toggle_maximize_horizontally' and 'toggle_maximize_vertically' which will "
-"maximize/unmaximize the window in that direction only, 'minimize' which will"
-" minimize the window, 'shade' which will roll the window up, 'menu' which "
-"will display the window menu, 'lower' which will put the window behind all "
-"the others, and 'none' which will not do anything."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:47
-msgid ""
-"This option provides additional control over how newly created windows get "
-"focus. It has two possible values; \"smart\" applies the user's normal focus"
-" mode, and \"strict\" results in windows started from a terminal not being "
-"given focus."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:48
-msgid ""
-"Turns on a visual indication when an application or the system issues a "
-"'bell' or 'beep'; useful for the hard-of-hearing and for use in noisy "
-"environments."
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:49
-msgid "Use standard system font in window titles"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:50
-msgid "Visual Bell Type"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:51
-msgid "Whether raising should be a side-effect of other user interactions"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:52
-msgid "Whether to resize with the right button"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:53
-msgid "Window focus mode"
-msgstr ""
-
-#: ../src/marco.schemas.in.in.h:54
-msgid "Window title font"
-msgstr ""
-
#: ../src/tools/marco-message.c:150
#, c-format
msgid "Usage: %s\n"
msgstr ""
-#: ../src/ui/frames.c:1124
+#: ../src/ui/frames.c:1199
msgid "Close Window"
msgstr "Äpişgäni Bagla"
-#: ../src/ui/frames.c:1127
+#: ../src/ui/frames.c:1202
msgid "Window Menu"
msgstr "Äpişge Menüsi"
-#: ../src/ui/frames.c:1130
+#: ../src/ui/frames.c:1205
msgid "Minimize Window"
msgstr "Äpişgäni Kiçelt"
-#: ../src/ui/frames.c:1133
+#: ../src/ui/frames.c:1208
msgid "Maximize Window"
msgstr "Äpişgäni Ulalt"
-#: ../src/ui/frames.c:1136
+#: ../src/ui/frames.c:1211
msgid "Restore Window"
msgstr ""
-#: ../src/ui/frames.c:1139
+#: ../src/ui/frames.c:1214
msgid "Roll Up Window"
msgstr ""
-#: ../src/ui/frames.c:1142
+#: ../src/ui/frames.c:1217
msgid "Unroll Window"
msgstr ""
-#: ../src/ui/frames.c:1145
+#: ../src/ui/frames.c:1220
msgid "Keep Window On Top"
msgstr ""
-#: ../src/ui/frames.c:1148
+#: ../src/ui/frames.c:1223
msgid "Remove Window From Top"
msgstr ""
-#: ../src/ui/frames.c:1151
+#: ../src/ui/frames.c:1226
msgid "Always On Visible Workspace"
msgstr ""
-#: ../src/ui/frames.c:1154
+#: ../src/ui/frames.c:1229
msgid "Put Window On Only One Workspace"
msgstr ""
@@ -1271,8 +848,7 @@ msgstr ""
#. * that use the shift key. If the text on this key isn't typically
#. * translated on keyboards used for your language, don't translate
#. * this.
-#.
-#: ../src/ui/metaaccellabel.c:104
+#: ../src/ui/metaaccellabel.c:143
msgid "Shift"
msgstr "Şift"
@@ -1280,8 +856,7 @@ msgstr "Şift"
#. * that use the control key. If the text on this key isn't typically
#. * translated on keyboards used for your language, don't translate
#. * this.
-#.
-#: ../src/ui/metaaccellabel.c:110
+#: ../src/ui/metaaccellabel.c:149
msgid "Ctrl"
msgstr "Kontrol"
@@ -1289,8 +864,7 @@ msgstr "Kontrol"
#. * that use the alt key. If the text on this key isn't typically
#. * translated on keyboards used for your language, don't translate
#. * this.
-#.
-#: ../src/ui/metaaccellabel.c:116
+#: ../src/ui/metaaccellabel.c:155
msgid "Alt"
msgstr "Alt"
@@ -1298,8 +872,7 @@ msgstr "Alt"
#. * that use the meta key. If the text on this key isn't typically
#. * translated on keyboards used for your language, don't translate
#. * this.
-#.
-#: ../src/ui/metaaccellabel.c:122
+#: ../src/ui/metaaccellabel.c:161
msgid "Meta"
msgstr "Meta"
@@ -1307,8 +880,7 @@ msgstr "Meta"
#. * that use the super key. If the text on this key isn't typically
#. * translated on keyboards used for your language, don't translate
#. * this.
-#.
-#: ../src/ui/metaaccellabel.c:128
+#: ../src/ui/metaaccellabel.c:167
msgid "Super"
msgstr "Super"
@@ -1316,8 +888,7 @@ msgstr "Super"
#. * that use the hyper key. If the text on this key isn't typically
#. * translated on keyboards used for your language, don't translate
#. * this.
-#.
-#: ../src/ui/metaaccellabel.c:134
+#: ../src/ui/metaaccellabel.c:173
msgid "Hyper"
msgstr "Hyper"
@@ -1325,8 +896,7 @@ msgstr "Hyper"
#. * that use the mod2 key. If the text on this key isn't typically
#. * translated on keyboards used for your language, don't translate
#. * this.
-#.
-#: ../src/ui/metaaccellabel.c:140
+#: ../src/ui/metaaccellabel.c:179
msgid "Mod2"
msgstr "Mod2"
@@ -1334,8 +904,7 @@ msgstr "Mod2"
#. * that use the mod3 key. If the text on this key isn't typically
#. * translated on keyboards used for your language, don't translate
#. * this.
-#.
-#: ../src/ui/metaaccellabel.c:146
+#: ../src/ui/metaaccellabel.c:185
msgid "Mod3"
msgstr "Mod3"
@@ -1343,8 +912,7 @@ msgstr "Mod3"
#. * that use the mod4 key. If the text on this key isn't typically
#. * translated on keyboards used for your language, don't translate
#. * this.
-#.
-#: ../src/ui/metaaccellabel.c:152
+#: ../src/ui/metaaccellabel.c:191
msgid "Mod4"
msgstr "Mod4"
@@ -1352,15 +920,13 @@ msgstr "Mod4"
#. * that use the mod5 key. If the text on this key isn't typically
#. * translated on keyboards used for your language, don't translate
#. * this.
-#.
-#: ../src/ui/metaaccellabel.c:158
+#: ../src/ui/metaaccellabel.c:197
msgid "Mod5"
msgstr "Mod5"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
-#.
-#: ../src/ui/resizepopup.c:113
+#: ../src/ui/resizepopup.c:117
#, c-format
msgid "%d x %d"
msgstr "%d x %d"
@@ -1401,208 +967,207 @@ msgstr ""
msgid "Frame geometry does not specify size of buttons"
msgstr ""
-#: ../src/ui/theme.c:1021
+#: ../src/ui/theme.c:1027
#, c-format
msgid "Gradients should have at least two colors"
msgstr ""
-#: ../src/ui/theme.c:1147
+#: ../src/ui/theme.c:1153
#, c-format
msgid ""
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL]"
" where NORMAL is the state; could not parse \"%s\""
msgstr ""
-#: ../src/ui/theme.c:1161
+#: ../src/ui/theme.c:1167
#, c-format
msgid ""
"GTK color specification must have a close bracket after the state, e.g. "
"gtk:fg[NORMAL] where NORMAL is the state; could not parse \"%s\""
msgstr ""
-#: ../src/ui/theme.c:1172
+#: ../src/ui/theme.c:1178
#, c-format
msgid "Did not understand state \"%s\" in color specification"
msgstr ""
-#: ../src/ui/theme.c:1185
+#: ../src/ui/theme.c:1191
#, c-format
msgid "Did not understand color component \"%s\" in color specification"
msgstr ""
-#: ../src/ui/theme.c:1215
+#: ../src/ui/theme.c:1221
#, c-format
msgid ""
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
"format"
msgstr ""
-#: ../src/ui/theme.c:1226
+#: ../src/ui/theme.c:1232
#, c-format
msgid "Could not parse alpha value \"%s\" in blended color"
msgstr ""
-#: ../src/ui/theme.c:1236
+#: ../src/ui/theme.c:1242
#, c-format
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
msgstr ""
-#: ../src/ui/theme.c:1283
+#: ../src/ui/theme.c:1289
#, c-format
msgid "Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
msgstr ""
-#: ../src/ui/theme.c:1294
+#: ../src/ui/theme.c:1300
#, c-format
msgid "Could not parse shade factor \"%s\" in shaded color"
msgstr ""
-#: ../src/ui/theme.c:1304
+#: ../src/ui/theme.c:1310
#, c-format
msgid "Shade factor \"%s\" in shaded color is negative"
msgstr ""
-#: ../src/ui/theme.c:1333
+#: ../src/ui/theme.c:1339
#, c-format
msgid "Could not parse color \"%s\""
msgstr ""
-#: ../src/ui/theme.c:1587
+#: ../src/ui/theme.c:1593
#, c-format
msgid "Coordinate expression contains character '%s' which is not allowed"
msgstr ""
-#: ../src/ui/theme.c:1614
+#: ../src/ui/theme.c:1620
#, c-format
msgid ""
"Coordinate expression contains floating point number '%s' which could not be"
" parsed"
msgstr ""
-#: ../src/ui/theme.c:1628
+#: ../src/ui/theme.c:1634
#, c-format
msgid "Coordinate expression contains integer '%s' which could not be parsed"
msgstr ""
-#: ../src/ui/theme.c:1750
+#: ../src/ui/theme.c:1756
#, c-format
msgid ""
"Coordinate expression contained unknown operator at the start of this text: "
"\"%s\""
msgstr ""
-#: ../src/ui/theme.c:1807
+#: ../src/ui/theme.c:1813
#, c-format
msgid "Coordinate expression was empty or not understood"
msgstr ""
-#: ../src/ui/theme.c:1918 ../src/ui/theme.c:1928 ../src/ui/theme.c:1962
+#: ../src/ui/theme.c:1924 ../src/ui/theme.c:1934 ../src/ui/theme.c:1968
#, c-format
msgid "Coordinate expression results in division by zero"
msgstr ""
-#: ../src/ui/theme.c:1970
+#: ../src/ui/theme.c:1976
#, c-format
msgid ""
"Coordinate expression tries to use mod operator on a floating-point number"
msgstr ""
-#: ../src/ui/theme.c:2026
+#: ../src/ui/theme.c:2032
#, c-format
msgid "Coordinate expression has an operator \"%s\" where an operand was expected"
msgstr ""
-#: ../src/ui/theme.c:2035
+#: ../src/ui/theme.c:2041
#, c-format
msgid "Coordinate expression had an operand where an operator was expected"
msgstr ""
-#: ../src/ui/theme.c:2043
+#: ../src/ui/theme.c:2049
#, c-format
msgid "Coordinate expression ended with an operator instead of an operand"
msgstr ""
-#: ../src/ui/theme.c:2053
+#: ../src/ui/theme.c:2059
#, c-format
msgid ""
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
"operand in between"
msgstr ""
-#: ../src/ui/theme.c:2200 ../src/ui/theme.c:2241
+#: ../src/ui/theme.c:2206 ../src/ui/theme.c:2247
#, c-format
msgid "Coordinate expression had unknown variable or constant \"%s\""
msgstr ""
-#: ../src/ui/theme.c:2295
+#: ../src/ui/theme.c:2301
#, c-format
msgid "Coordinate expression parser overflowed its buffer."
msgstr ""
-#: ../src/ui/theme.c:2324
+#: ../src/ui/theme.c:2330
#, c-format
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
msgstr ""
-#: ../src/ui/theme.c:2388
+#: ../src/ui/theme.c:2394
#, c-format
msgid ""
"Coordinate expression had an open parenthesis with no close parenthesis"
msgstr ""
-#: ../src/ui/theme.c:2399
+#: ../src/ui/theme.c:2405
#, c-format
msgid "Coordinate expression doesn't seem to have any operators or operands"
msgstr ""
-#: ../src/ui/theme.c:2603 ../src/ui/theme.c:2623 ../src/ui/theme.c:2643
+#: ../src/ui/theme.c:2609 ../src/ui/theme.c:2629 ../src/ui/theme.c:2649
#, c-format
msgid "Theme contained an expression that resulted in an error: %s\n"
msgstr ""
-#: ../src/ui/theme.c:4220
+#: ../src/ui/theme.c:4456
#, c-format
msgid ""
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
"specified for this frame style"
msgstr ""
-#: ../src/ui/theme.c:4728 ../src/ui/theme.c:4753
+#: ../src/ui/theme.c:5089 ../src/ui/theme.c:5114
#, c-format
msgid "Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
msgstr ""
-#: ../src/ui/theme.c:4797
+#: ../src/ui/theme.c:5158
#, c-format
msgid "Failed to load theme \"%s\": %s\n"
msgstr ""
-#: ../src/ui/theme.c:4927 ../src/ui/theme.c:4934 ../src/ui/theme.c:4941
-#: ../src/ui/theme.c:4948 ../src/ui/theme.c:4955
+#: ../src/ui/theme.c:5288 ../src/ui/theme.c:5295 ../src/ui/theme.c:5302
+#: ../src/ui/theme.c:5309 ../src/ui/theme.c:5316
#, c-format
msgid "No <%s> set for theme \"%s\""
msgstr ""
-#: ../src/ui/theme.c:4963
+#: ../src/ui/theme.c:5324
#, c-format
msgid ""
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
"type=\"%s\" style_set=\"whatever\"/> element"
msgstr ""
-#: ../src/ui/theme.c:5406 ../src/ui/theme.c:5468 ../src/ui/theme.c:5531
+#: ../src/ui/theme.c:5797 ../src/ui/theme.c:5859 ../src/ui/theme.c:5922
#, c-format
msgid "User-defined constants must begin with a capital letter; \"%s\" does not"
msgstr ""
-#: ../src/ui/theme.c:5414 ../src/ui/theme.c:5476 ../src/ui/theme.c:5539
+#: ../src/ui/theme.c:5805 ../src/ui/theme.c:5867 ../src/ui/theme.c:5930
#, c-format
msgid "Constant \"%s\" has already been defined"
msgstr ""
#. Translators: This means that an attribute which should have been found
#. * on an XML element was not in fact found.
-#.
#: ../src/ui/theme-parser.c:226
#, c-format
msgid "No \"%s\" attribute on element <%s>"
diff --git a/po/uk.po b/po/uk.po
index 1cffdf02..91322838 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -7,13 +7,13 @@
# Микола Ткач <[email protected]>, 2013
# Stefano Karapetsas <[email protected]>, 2012
# Yarema aka Knedlyk <[email protected]>, 2012
-# Микола Ткач <[email protected]>, 2014
+# Микола Ткач <[email protected]>, 2014-2015
msgid ""
msgstr ""
"Project-Id-Version: MATE Desktop Environment\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-12 18:09+0200\n"
-"PO-Revision-Date: 2014-10-12 16:38+0000\n"
+"PO-Revision-Date: 2015-03-24 15:28+0000\n"
"Last-Translator: Микола Ткач <[email protected]>\n"
"Language-Team: Ukrainian (http://www.transifex.com/projects/p/MATE/language/uk/)\n"
"MIME-Version: 1.0\n"
@@ -28,7 +28,7 @@ msgstr "Стільниця"
#: ../src/50-marco-desktop-key.xml.in.h:2
msgid "Show the panel's \"Run Application\" dialog box"
-msgstr "Показати діалогове вікно панелі «Виконати програму»"
+msgstr "Показати діалогове вікно панелі «Виконати проґраму»"
#: ../src/50-marco-desktop-key.xml.in.h:3
msgid "Show the panel's main menu"
@@ -56,7 +56,7 @@ msgstr "Перехід між вікнами через контекстне в�
#: ../src/50-marco-global-key.xml.in.h:3
msgid "Move between windows of an application, using a popup window"
-msgstr "Перемикати фокус вводу між вікнами програми через контекстне вікно"
+msgstr "Перемикати фокус вводу між вікнами проґрами через контекстне вікно"
#: ../src/50-marco-global-key.xml.in.h:4
msgid "Move between panels and the desktop, using a popup window"
@@ -76,55 +76,55 @@ msgstr "Негайний перехід між панелями та стіль�
#: ../src/50-marco-global-key.xml.in.h:8
msgid "Hide all normal windows and set focus to the desktop"
-msgstr "Приховувати всі звичайні вікна та активувати стільницю"
+msgstr "Приховувати усі звичайні вікна та активувати стільницю"
#: ../src/50-marco-global-key.xml.in.h:9
msgid "Switch to workspace 1"
-msgstr "Перейти в робочий простір 1"
+msgstr "Перейти на робочий простір 1"
#: ../src/50-marco-global-key.xml.in.h:10
msgid "Switch to workspace 2"
-msgstr "Перейти в робочий простір 2"
+msgstr "Перейти на робочий простір 2"
#: ../src/50-marco-global-key.xml.in.h:11
msgid "Switch to workspace 3"
-msgstr "Перейти в робочий простір 3"
+msgstr "Перейти на робочий простір 3"
#: ../src/50-marco-global-key.xml.in.h:12
msgid "Switch to workspace 4"
-msgstr "Перейти в робочий простір 4"
+msgstr "Перейти на робочий простір 4"
#: ../src/50-marco-global-key.xml.in.h:13
msgid "Switch to workspace 5"
-msgstr "Перейти в робочий простір 5"
+msgstr "Перейти на робочий простір 5"
#: ../src/50-marco-global-key.xml.in.h:14
msgid "Switch to workspace 6"
-msgstr "Перейти в робочий простір 6"
+msgstr "Перейти на робочий простір 6"
#: ../src/50-marco-global-key.xml.in.h:15
msgid "Switch to workspace 7"
-msgstr "Перейти в робочий простір 7"
+msgstr "Перейти на робочий простір 7"
#: ../src/50-marco-global-key.xml.in.h:16
msgid "Switch to workspace 8"
-msgstr "Перейти в робочий простір 8"
+msgstr "Перейти на робочий простір 8"
#: ../src/50-marco-global-key.xml.in.h:17
msgid "Switch to workspace 9"
-msgstr "Перейти в робочий простір 9"
+msgstr "Перейти на робочий простір 9"
#: ../src/50-marco-global-key.xml.in.h:18
msgid "Switch to workspace 10"
-msgstr "Перейти в робочий простір 10"
+msgstr "Перейти на робочий простір 10"
#: ../src/50-marco-global-key.xml.in.h:19
msgid "Switch to workspace 11"
-msgstr "Перейти в робочий простір 11"
+msgstr "Перейти на робочий простір 11"
#: ../src/50-marco-global-key.xml.in.h:20
msgid "Switch to workspace 12"
-msgstr "Перейти в робочий простір 12"
+msgstr "Перейти на робочий простір 12"
#: ../src/50-marco-global-key.xml.in.h:21
msgid "Switch to workspace on the left of the current workspace"
@@ -192,7 +192,7 @@ msgstr "Чи буде вікно розташоване на усіх робоч
#: ../src/50-marco-window-key.xml.in.h:13
msgid "Raise window if it's covered by another window, otherwise lower it"
-msgstr "Підняти вікно вікно на передній план, якщо воно затінене іншим, інакше опустити його"
+msgstr "Підняти вікно на передній план, якщо воно затінене іншим, інакше опустити його"
#: ../src/50-marco-window-key.xml.in.h:14
msgid "Raise window above other windows"
@@ -200,7 +200,7 @@ msgstr "Підняти вікно над іншими"
#: ../src/50-marco-window-key.xml.in.h:15
msgid "Lower window below other windows"
-msgstr "Перемістити вікна нижче усіх вікон"
+msgstr "Помістити вікно під іншими вікнами"
#: ../src/50-marco-window-key.xml.in.h:16
msgid "Maximize window vertically"
@@ -401,7 +401,7 @@ msgid ""
"Copyright (C) 2001-%s Havoc Pennington, Red Hat, Inc., and others\n"
"This is free software; see the source for copying conditions.\n"
"There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
-msgstr "marco %s\nАвторське право (C) 2001-%s Havoc Pennington, Red Hat, Inc., and others\nЦе - вільне програмне забезпечення; умови копіювання дивіться у текстах програми.\nНе надається НІЯКИХ гарантій; навіть ПРИДАТНОСТІ ДЛЯ ПРОДАЖУ чи ВІДПОВІДНОСТІ ПЕВНІЙ МЕТІ.\n"
+msgstr "marco %s\nАвторське право (C) 2001-%s Havoc Pennington, Red Hat, Inc., and others\nЦе - вільне проґрамне забезпечення; умови копіювання дивіться у текстах проґрами.\nНе надається НІЯКИХ гарантій; навіть ПРИДАТНОСТІ ДЛЯ ПРОДАЖУ чи ВІДПОВІДНОСТІ ПЕВНІЙ МЕТІ.\n"
#: ../src/core/main.c:275
msgid "Disable connection to session manager"
@@ -433,11 +433,11 @@ msgstr "Зробити виклики X синхронними"
#: ../src/core/main.c:316
msgid "Turn compositing on"
-msgstr "Увімкнути менеджер композиції"
+msgstr "Увімкнути композитний менеджер"
#: ../src/core/main.c:322
msgid "Turn compositing off"
-msgstr "Вимкнути менеджер композиції"
+msgstr "Вимкнути композитний менеджер"
#: ../src/core/main.c:328
msgid ""
@@ -472,7 +472,7 @@ msgstr "Значення %d ключа GSettings «%s» не входить у �
msgid ""
"Workarounds for broken applications disabled. Some applications may not "
"behave properly.\n"
-msgstr "Трюк для роботи із зіпсованими програмами вимкнено. Деякі додатки можуть поводитись неправильно.\n"
+msgstr "Трюк для роботи із зіпсованими проґрамами вимкнено. Деякі додатки можуть поводитися неправильно.\n"
#: ../src/core/prefs.c:1090
#, c-format
@@ -644,7 +644,7 @@ msgstr "Вікно %s встановило натяк MWM, який вказує
#: ../src/core/window-props.c:252
#, c-format
msgid "Application set a bogus _NET_WM_PID %lu\n"
-msgstr "Програма встановила неправильне значення параметру _NET_WM_PID %lu\n"
+msgstr "Проґрама встановила неправильне значення параметру _NET_WM_PID %lu\n"
#. Translators: the title of a window from another machine
#: ../src/core/window-props.c:396
@@ -685,7 +685,7 @@ msgid ""
"and actually has type %s format %d n_items %d.\n"
"This is most likely an application bug, not a window manager bug.\n"
"The window has title=\"%s\" class=\"%s\" name=\"%s\"\n"
-msgstr "Вікно 0x%lx має властивість %s\nтип якої очікувався %s у форматі %d\nале насправді має тип %s формат %d n_items %d.\nШвидше за все - це помилка у програмі, а не у менеджері вікон.\nВікно має title=\"%s\" class=\"%s\" name=\"%s\"\n"
+msgstr "Вікно 0x%lx має властивість %s\nтип якої очікувався %s у форматі %d\nале насправді має тип %s формат %d n_items %d.\nШвидше за все - це помилка у проґрамі, а не у менеджері вікон.\nВікно має title=\"%s\" class=\"%s\" name=\"%s\"\n"
#: ../src/core/xprops.c:401
#, c-format
@@ -734,11 +734,11 @@ msgstr "Розкотити вікно"
#: ../src/ui/frames.c:1220
msgid "Keep Window On Top"
-msgstr "Тримати вікно нагорі"
+msgstr "Тримати вікно поверх інших"
#: ../src/ui/frames.c:1223
msgid "Remove Window From Top"
-msgstr "Прибрати вікно з гори"
+msgstr "Прибрати вікно з переднього плану"
#: ../src/ui/frames.c:1226
msgid "Always On Visible Workspace"
@@ -792,7 +792,7 @@ msgstr "Перемістити заголовок на _екран"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:82 ../src/ui/menu.c:84
msgid "Always on _Top"
-msgstr "Завжди зго_ри"
+msgstr "Завжди по_верх інших"
#. Translators: Translate this string the same way as you do in libwnck!
#: ../src/ui/menu.c:86
@@ -1559,7 +1559,7 @@ msgstr "/Вікна/_Правий док"
#: ../src/ui/theme-viewer.c:85
msgid "/Windows/_All docks"
-msgstr "б/Вікна/Всі _доки"
+msgstr "б/Вікна/Усі _доки"
#: ../src/ui/theme-viewer.c:86
msgid "/Windows/Des_ktop"
@@ -1584,7 +1584,7 @@ msgstr "Прямокутник"
#: ../src/ui/theme-viewer.c:380
msgid "Normal Application Window"
-msgstr "Звичайне вікно програми"
+msgstr "Звичайне вікно проґрами"
#: ../src/ui/theme-viewer.c:384
msgid "Dialog Box"
@@ -1673,12 +1673,12 @@ msgstr "перевірка виразу позиції повернула зна
#: ../src/ui/theme-viewer.c:1252
msgid "Error was expected but none given"
-msgstr "Очікувалась помилка, але її не трапилося"
+msgstr "Очікувалася помилка, але її не трапилося"
#: ../src/ui/theme-viewer.c:1254
#, c-format
msgid "Error %d was expected but %d given"
-msgstr "Очікувалась помилка %d, але трапилася помилка %d"
+msgstr "Очікувалася помилка %d, але трапилася помилка %d"
#: ../src/ui/theme-viewer.c:1260
#, c-format
diff --git a/src/50-marco-window-key.xml.in b/src/50-marco-window-key.xml.in
index 2dcfabc3..0b3ecef4 100644
--- a/src/50-marco-window-key.xml.in
+++ b/src/50-marco-window-key.xml.in
@@ -70,6 +70,14 @@
_description="Maximize window horizontally" />
<KeyListEntry
+ name="tile-to-side-e"
+ _description="Tile window to east (right) side of screen" />
+
+ <KeyListEntry
+ name="tile-to-side-w"
+ _description="Tile window to west (left) side of screen" />
+
+ <KeyListEntry
name="move-to-corner-nw"
_description="Move window to north-west (top left) corner" />
diff --git a/src/compositor/compositor-private.h b/src/compositor/compositor-private.h
index 93f3e05b..61e7ffb0 100644
--- a/src/compositor/compositor-private.h
+++ b/src/compositor/compositor-private.h
@@ -50,6 +50,9 @@ struct _MetaCompositor
MetaScreen *screen,
MetaWindow *window);
+ void (*free_window) (MetaCompositor *compositor,
+ MetaWindow *window);
+
void (*maximize_window) (MetaCompositor *compositor,
MetaWindow *window);
void (*unmaximize_window) (MetaCompositor *compositor,
diff --git a/src/compositor/compositor-xrender.c b/src/compositor/compositor-xrender.c
index 7d31f303..c1218ebc 100644
--- a/src/compositor/compositor-xrender.c
+++ b/src/compositor/compositor-xrender.c
@@ -50,39 +50,8 @@
#include <X11/extensions/Xfixes.h>
#include <X11/extensions/Xrender.h>
-#if COMPOSITE_MAJOR > 0 || COMPOSITE_MINOR >= 2
-#define HAVE_NAME_WINDOW_PIXMAP 1
-#endif
-
-#if COMPOSITE_MAJOR > 0 || COMPOSITE_MINOR >= 3
-#define HAVE_COW 1
-#else
-/* Don't have a cow man...HAAHAAHAA */
-#endif
-
#define USE_IDLE_REPAINT 1
-#ifdef HAVE_COMPOSITE_EXTENSIONS
-static inline gboolean
-composite_at_least_version (MetaDisplay *display,
- int maj, int min)
-{
- static int major = -1;
- static int minor = -1;
-
- if (major == -1)
- meta_display_get_compositor_version (display, &major, &minor);
-
- return (major > maj || (major == maj && minor >= min));
-}
-
-#define have_name_window_pixmap(display) \
- composite_at_least_version (display, 0, 2)
-#define have_cow(display) \
- composite_at_least_version (display, 0, 3)
-
-#endif
-
typedef enum _MetaCompWindowType
{
META_COMP_WINDOW_NORMAL,
@@ -180,7 +149,6 @@ typedef struct _MetaCompWindow
Window id;
XWindowAttributes attrs;
-#ifdef HAVE_NAME_WINDOW_PIXMAP
Pixmap back_pixmap;
/* When the window is shaded back_pixmap will be replaced with the pixmap
@@ -188,7 +156,6 @@ typedef struct _MetaCompWindow
so that we can still see what the window looked like when it is needed
for the _get_window_pixmap function */
Pixmap shaded_back_pixmap;
-#endif
int mode;
@@ -1062,21 +1029,21 @@ get_window_picture (MetaCompWindow *cw)
XRenderPictureAttributes pa;
XRenderPictFormat *format;
Drawable draw;
+ int error_code;
draw = cw->id;
meta_error_trap_push (display);
-#ifdef HAVE_NAME_WINDOW_PIXMAP
- if (have_name_window_pixmap (display))
- {
- if (cw->back_pixmap == None)
- cw->back_pixmap = XCompositeNameWindowPixmap (xdisplay, cw->id);
+ if (cw->back_pixmap == None)
+ cw->back_pixmap = XCompositeNameWindowPixmap (xdisplay, cw->id);
- if (cw->back_pixmap != None)
- draw = cw->back_pixmap;
- }
-#endif
+ error_code = meta_error_trap_pop_with_return (display, FALSE);
+ if (error_code != 0)
+ cw->back_pixmap = None;
+
+ if (cw->back_pixmap != None)
+ draw = cw->back_pixmap;
format = get_window_format (cw);
if (format)
@@ -1085,13 +1052,13 @@ get_window_picture (MetaCompWindow *cw)
pa.subwindow_mode = IncludeInferiors;
+ meta_error_trap_push (display);
pict = XRenderCreatePicture (xdisplay, draw, format, CPSubwindowMode, &pa);
meta_error_trap_pop (display, FALSE);
return pict;
}
- meta_error_trap_pop (display, FALSE);
return None;
}
@@ -1231,22 +1198,10 @@ paint_windows (MetaScreen *screen,
{
int x, y, wid, hei;
-#ifdef HAVE_NAME_WINDOW_PIXMAP
- if (have_name_window_pixmap (display))
- {
- x = cw->attrs.x;
- y = cw->attrs.y;
- wid = cw->attrs.width + cw->attrs.border_width * 2;
- hei = cw->attrs.height + cw->attrs.border_width * 2;
- }
- else
-#endif
- {
- x = cw->attrs.x + cw->attrs.border_width;
- y = cw->attrs.y + cw->attrs.border_width;
- wid = cw->attrs.width;
- hei = cw->attrs.height;
- }
+ x = cw->attrs.x;
+ y = cw->attrs.y;
+ wid = cw->attrs.width + cw->attrs.border_width * 2;
+ hei = cw->attrs.height + cw->attrs.border_width * 2;
XFixesSetPictureClipRegion (xdisplay, root_buffer,
0, 0, paint_region);
@@ -1322,22 +1277,11 @@ paint_windows (MetaScreen *screen,
if (cw->mode == WINDOW_ARGB)
{
int x, y, wid, hei;
-#ifdef HAVE_NAME_WINDOW_PIXMAP
- if (have_name_window_pixmap (display))
- {
- x = cw->attrs.x;
- y = cw->attrs.y;
- wid = cw->attrs.width + cw->attrs.border_width * 2;
- hei = cw->attrs.height + cw->attrs.border_width * 2;
- }
- else
-#endif
- {
- x = cw->attrs.x + cw->attrs.border_width;
- y = cw->attrs.y + cw->attrs.border_width;
- wid = cw->attrs.width;
- hei = cw->attrs.height;
- }
+
+ x = cw->attrs.x;
+ y = cw->attrs.y;
+ wid = cw->attrs.width + cw->attrs.border_width * 2;
+ hei = cw->attrs.height + cw->attrs.border_width * 2;
XRenderComposite (xdisplay, PictOpOver, cw->picture,
cw->alpha_pict, root_buffer, 0, 0, 0, 0,
@@ -1553,24 +1497,38 @@ free_win (MetaCompWindow *cw,
MetaDisplay *display = meta_screen_get_display (cw->screen);
Display *xdisplay = meta_display_get_xdisplay (display);
MetaCompScreen *info = meta_screen_get_compositor_data (cw->screen);
+ XRectangle r;
+ XserverRegion region;
-#ifdef HAVE_NAME_WINDOW_PIXMAP
- if (have_name_window_pixmap (display))
+ /*
+ * If we are deleting a window with a compositor shadow,
+ * trigger a repaint of the area it was covering.
+ * This fixes an issue where the shadow beneath a
+ * (GTK3) tooltip was not being erased after the tooltip
+ * disappeared.
+ */
+ if (cw->shadow) {
+ r.x = cw->attrs.x + cw->shadow_dx;
+ r.y = cw->attrs.y + cw->shadow_dy;
+ r.width = cw->attrs.width + cw->shadow_width;
+ r.height = cw->attrs.height + cw->shadow_height;
+ region = XFixesCreateRegion (xdisplay, &r, 1);
+ add_damage(cw->screen, region);
+ }
+
+
+ /* See comment in map_win */
+ if (cw->back_pixmap && destroy)
{
- /* See comment in map_win */
- if (cw->back_pixmap && destroy)
- {
- XFreePixmap (xdisplay, cw->back_pixmap);
- cw->back_pixmap = None;
- }
+ XFreePixmap (xdisplay, cw->back_pixmap);
+ cw->back_pixmap = None;
+ }
- if (cw->shaded_back_pixmap && destroy)
- {
- XFreePixmap (xdisplay, cw->shaded_back_pixmap);
- cw->shaded_back_pixmap = None;
- }
+ if (cw->shaded_back_pixmap && destroy)
+ {
+ XFreePixmap (xdisplay, cw->shaded_back_pixmap);
+ cw->shaded_back_pixmap = None;
}
-#endif
if (cw->picture)
{
@@ -1644,7 +1602,6 @@ map_win (MetaDisplay *display,
if (cw == NULL)
return;
-#ifdef HAVE_NAME_WINDOW_PIXMAP
/* The reason we deallocate this here and not in unmap
is so that we will still have a valid pixmap for
whenever the window is unmapped */
@@ -1659,7 +1616,6 @@ map_win (MetaDisplay *display,
XFreePixmap (xdisplay, cw->shaded_back_pixmap);
cw->shaded_back_pixmap = None;
}
-#endif
cw->attrs.map_state = IsViewable;
cw->damaged = FALSE;
@@ -1853,11 +1809,8 @@ add_win (MetaScreen *screen,
XSelectInput (xdisplay, xwindow, event_mask);
-
-#ifdef HAVE_NAME_WINDOW_PIXMAP
cw->back_pixmap = None;
cw->shaded_back_pixmap = None;
-#endif
cw->damaged = FALSE;
cw->shaped = is_shaped (display, xwindow);
@@ -2039,32 +1992,28 @@ resize_win (MetaCompWindow *cw,
if (cw->attrs.width != width || cw->attrs.height != height)
{
-#ifdef HAVE_NAME_WINDOW_PIXMAP
- if (have_name_window_pixmap (display))
+ if (cw->shaded_back_pixmap)
+ {
+ XFreePixmap (xdisplay, cw->shaded_back_pixmap);
+ cw->shaded_back_pixmap = None;
+ }
+
+ if (cw->back_pixmap)
{
- if (cw->shaded_back_pixmap)
+ /* If the window is shaded, we store the old backing pixmap
+ so we can return a proper image of the window */
+ if (cw->window && meta_window_is_shaded (cw->window))
{
- XFreePixmap (xdisplay, cw->shaded_back_pixmap);
- cw->shaded_back_pixmap = None;
+ cw->shaded_back_pixmap = cw->back_pixmap;
+ cw->back_pixmap = None;
}
-
- if (cw->back_pixmap)
+ else
{
- /* If the window is shaded, we store the old backing pixmap
- so we can return a proper image of the window */
- if (cw->window && meta_window_is_shaded (cw->window))
- {
- cw->shaded_back_pixmap = cw->back_pixmap;
- cw->back_pixmap = None;
- }
- else
- {
- XFreePixmap (xdisplay, cw->back_pixmap);
- cw->back_pixmap = None;
- }
+ XFreePixmap (xdisplay, cw->back_pixmap);
+ cw->back_pixmap = None;
}
}
-#endif
+
if (cw->picture)
{
XRenderFreePicture (xdisplay, cw->picture);
@@ -2501,29 +2450,22 @@ show_overlay_window (MetaScreen *screen,
{
MetaDisplay *display = meta_screen_get_display (screen);
Display *xdisplay = meta_display_get_xdisplay (display);
+ XserverRegion region;
-#ifdef HAVE_COW
- if (have_cow (display))
- {
- XserverRegion region;
-
- region = XFixesCreateRegion (xdisplay, NULL, 0);
+ region = XFixesCreateRegion (xdisplay, NULL, 0);
- XFixesSetWindowShapeRegion (xdisplay, cow, ShapeBounding, 0, 0, 0);
- XFixesSetWindowShapeRegion (xdisplay, cow, ShapeInput, 0, 0, region);
+ XFixesSetWindowShapeRegion (xdisplay, cow, ShapeBounding, 0, 0, 0);
+ XFixesSetWindowShapeRegion (xdisplay, cow, ShapeInput, 0, 0, region);
- XFixesDestroyRegion (xdisplay, region);
+ XFixesDestroyRegion (xdisplay, region);
- damage_screen (screen);
- }
-#endif
+ damage_screen (screen);
}
static void
hide_overlay_window (MetaScreen *screen,
Window cow)
{
-#ifdef HAVE_COW
MetaDisplay *display = meta_screen_get_display (screen);
Display *xdisplay = meta_display_get_xdisplay (display);
XserverRegion region;
@@ -2531,7 +2473,6 @@ hide_overlay_window (MetaScreen *screen,
region = XFixesCreateRegion (xdisplay, NULL, 0);
XFixesSetWindowShapeRegion (xdisplay, cow, ShapeBounding, 0, 0, region);
XFixesDestroyRegion (xdisplay, region);
-#endif
}
static Window
@@ -2543,17 +2484,8 @@ get_output_window (MetaScreen *screen)
xroot = meta_screen_get_xroot (screen);
-#ifdef HAVE_COW
- if (have_cow (display))
- {
- output = XCompositeGetOverlayWindow (xdisplay, xroot);
- XSelectInput (xdisplay, output, ExposureMask);
- }
- else
-#endif
- {
- output = xroot;
- }
+ output = XCompositeGetOverlayWindow (xdisplay, xroot);
+ XSelectInput (xdisplay, output, ExposureMask);
return output;
}
@@ -2690,9 +2622,7 @@ xrender_unmanage_screen (MetaCompositor *compositor,
CompositeRedirectManual);
meta_screen_unset_cm_selection (screen);
-#ifdef HAVE_COW
XCompositeReleaseOverlayWindow (xdisplay, info->output);
-#endif
g_free (info);
@@ -2751,23 +2681,38 @@ xrender_end_move (MetaCompositor *compositor,
#ifdef HAVE_COMPOSITE_EXTENSIONS
#endif
}
+#endif /* 0 */
static void
xrender_free_window (MetaCompositor *compositor,
MetaWindow *window)
{
#ifdef HAVE_COMPOSITE_EXTENSIONS
- /* FIXME: When an undecorated window is hidden this is called,
- but the window does not get readded if it is subsequentally shown again
- See http://bugzilla.gnome.org/show_bug.cgi?id=504876
-
- I don't *think* theres any need for this call anyway, leaving it out
- does not seem to cause any side effects so far, but I should check with
- someone who understands more. */
- /* destroy_win (compositor->display, window->xwindow, FALSE); */
+ MetaCompositorXRender *xrc;
+ MetaFrame *frame;
+ Window xwindow;
+
+ xrc = (MetaCompositorXRender *) compositor;
+ frame = meta_window_get_frame (window);
+ xwindow = None;
+
+ if (frame)
+ {
+ xwindow = meta_frame_get_xwindow (frame);
+ }
+ else
+ {
+ /* FIXME: When an undecorated window is hidden this is called, but the
+ * window does not get readded if it is subsequentally shown again. See:
+ * http://bugzilla.gnome.org/show_bug.cgi?id=504876
+ */
+ /* xwindow = meta_window_get_xwindow (window); */
+ }
+
+ if (xwindow != None)
+ destroy_win (xrc->display, xwindow, FALSE);
#endif
}
-#endif /* 0 */
static void
xrender_process_event (MetaCompositor *compositor,
@@ -2858,17 +2803,10 @@ xrender_get_window_pixmap (MetaCompositor *compositor,
if (cw == NULL)
return None;
-#ifdef HAVE_NAME_WINDOW_PIXMAP
- if (have_name_window_pixmap (meta_window_get_display (window)))
- {
- if (meta_window_is_shaded (window))
- return cw->shaded_back_pixmap;
- else
- return cw->back_pixmap;
- }
+ if (meta_window_is_shaded (window))
+ return cw->shaded_back_pixmap;
else
-#endif
- return None;
+ return cw->back_pixmap;
#endif
}
@@ -3056,6 +2994,7 @@ static MetaCompositor comp_info = {
xrender_process_event,
xrender_get_window_pixmap,
xrender_set_active_window,
+ xrender_free_window,
xrender_maximize_window,
xrender_unmaximize_window,
};
diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c
index d23fe3f7..f7a28261 100644
--- a/src/compositor/compositor.c
+++ b/src/compositor/compositor.c
@@ -156,6 +156,10 @@ void meta_compositor_end_move (MetaCompositor *compositor,
void meta_compositor_free_window (MetaCompositor *compositor,
MetaWindow *window)
{
+#ifdef HAVE_COMPOSITE_EXTENSIONS
+ if (compositor && compositor->free_window)
+ compositor->free_window (compositor, window);
+#endif
}
void
diff --git a/src/core/display-private.h b/src/core/display-private.h
index dc270a96..069e0ccf 100644
--- a/src/core/display-private.h
+++ b/src/core/display-private.h
@@ -276,8 +276,6 @@ struct _MetaDisplay {
#ifdef HAVE_COMPOSITE_EXTENSIONS
int composite_event_base;
int composite_error_base;
- int composite_major_version;
- int composite_minor_version;
int damage_event_base;
int damage_error_base;
int xfixes_event_base;
@@ -420,8 +418,7 @@ void meta_display_ungrab_focus_window_button (MetaDisplay *display,
MetaWindow *window);
/* Next two functions are defined in edge-resistance.c */
-void meta_display_compute_resistance_and_snapping_edges (MetaDisplay *display);
-void meta_display_cleanup_edges (MetaDisplay *display);
+void meta_display_cleanup_edges (MetaDisplay *display);
/* make a request to ensure the event serial has changed */
void meta_display_increment_event_serial (MetaDisplay *display);
diff --git a/src/core/display.c b/src/core/display.c
index 6a4831fb..caa76247 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -558,6 +558,9 @@ meta_display_open (void)
#ifdef HAVE_COMPOSITE_EXTENSIONS
{
+ int composite_major_version = 0;
+ int composite_minor_version = 0;
+
the_display->have_composite = FALSE;
the_display->composite_error_base = 0;
@@ -572,18 +575,16 @@ meta_display_open (void)
}
else
{
- the_display->composite_major_version = 0;
- the_display->composite_minor_version = 0;
if (XCompositeQueryVersion (the_display->xdisplay,
- &the_display->composite_major_version,
- &the_display->composite_minor_version))
+ &composite_major_version,
+ &composite_minor_version))
{
the_display->have_composite = TRUE;
}
else
{
- the_display->composite_major_version = 0;
- the_display->composite_minor_version = 0;
+ composite_major_version = 0;
+ composite_minor_version = 0;
}
}
@@ -591,8 +592,8 @@ meta_display_open (void)
"extn ver %d %d\n",
the_display->composite_error_base,
the_display->composite_event_base,
- the_display->composite_major_version,
- the_display->composite_minor_version);
+ composite_major_version,
+ composite_minor_version);
the_display->have_damage = FALSE;
@@ -3662,18 +3663,6 @@ meta_display_begin_grab_op (MetaDisplay *display,
g_assert (display->grab_window != NULL || display->grab_screen != NULL);
g_assert (display->grab_op != META_GRAB_OP_NONE);
- /* If this is a move or resize, cache the window edges for
- * resistance/snapping
- */
- if (meta_grab_op_is_resizing (display->grab_op) ||
- meta_grab_op_is_moving (display->grab_op))
- {
- meta_topic (META_DEBUG_WINDOW_OPS,
- "Computing edges to resist-movement or snap-to for %s.\n",
- window->desc);
- meta_display_compute_resistance_and_snapping_edges (display);
- }
-
/* Save the old stacking */
if (GRAB_OP_IS_WINDOW_SWITCH (display->grab_op))
{
@@ -5401,17 +5390,6 @@ meta_display_remove_autoraise_callback (MetaDisplay *display)
}
}
-#ifdef HAVE_COMPOSITE_EXTENSIONS
-void
-meta_display_get_compositor_version (MetaDisplay *display,
- int *major,
- int *minor)
-{
- *major = display->composite_major_version;
- *minor = display->composite_minor_version;
-}
-#endif
-
Display *
meta_display_get_xdisplay (MetaDisplay *display)
{
diff --git a/src/core/edge-resistance.c b/src/core/edge-resistance.c
index 51e77d54..aa4fcb6a 100644
--- a/src/core/edge-resistance.c
+++ b/src/core/edge-resistance.c
@@ -63,6 +63,8 @@ struct MetaEdgeResistanceData
ResistanceDataForAnEdge bottom_data;
};
+static void compute_resistance_and_snapping_edges (MetaDisplay *display);
+
/* !WARNING!: this function can return invalid indices (namely, either -1 or
* edges->len); this is by design, but you need to remember this.
*/
@@ -550,7 +552,9 @@ apply_edge_resistance_to_each_side (MetaDisplay *display,
gboolean modified;
int new_left, new_right, new_top, new_bottom;
- g_assert (display->grab_edge_resistance_data != NULL);
+ if (display->grab_edge_resistance_data == NULL)
+ compute_resistance_and_snapping_edges (display);
+
edge_data = display->grab_edge_resistance_data;
if (auto_snap)
@@ -671,7 +675,8 @@ meta_display_cleanup_edges (MetaDisplay *display)
MetaEdgeResistanceData *edge_data = display->grab_edge_resistance_data;
GHashTable *edges_to_be_freed;
- g_assert (edge_data != NULL);
+ if (edge_data == NULL) /* Not currently cached */
+ return;
/* We first need to clean out any window edges */
edges_to_be_freed = g_hash_table_new_full (g_direct_hash, g_direct_equal,
@@ -938,8 +943,8 @@ initialize_grab_edge_resistance_data (MetaDisplay *display)
edge_data->bottom_data.keyboard_buildup = 0;
}
-void
-meta_display_compute_resistance_and_snapping_edges (MetaDisplay *display)
+static void
+compute_resistance_and_snapping_edges (MetaDisplay *display)
{
GList *stacked_windows;
GList *cur_window_iter;
@@ -952,6 +957,11 @@ meta_display_compute_resistance_and_snapping_edges (MetaDisplay *display)
*/
GSList *rem_windows, *rem_win_stacking;
+ g_assert (display->grab_window != NULL);
+ meta_topic (META_DEBUG_WINDOW_OPS,
+ "Computing edges to resist-movement or snap-to for %s.\n",
+ display->grab_window->desc);
+
/*
* 1st: Get the list of relevant windows, from bottom to top
*/
diff --git a/src/core/keybindings.c b/src/core/keybindings.c
index 821d432a..068199b8 100644
--- a/src/core/keybindings.c
+++ b/src/core/keybindings.c
@@ -2329,7 +2329,7 @@ static void
error_on_command (int command_index,
const char *command,
const char *message,
- int screen_number,
+ const char *screen_name,
guint32 timestamp)
{
if (command_index < 0)
@@ -2358,7 +2358,7 @@ error_on_command (int command_index,
meta_show_dialog ("--error",
text,
NULL,
- screen_number,
+ screen_name,
NULL, NULL, 0,
NULL, NULL);
@@ -2370,7 +2370,7 @@ error_on_command (int command_index,
meta_show_dialog ("--error",
message,
NULL,
- screen_number,
+ screen_name,
NULL, NULL, 0,
NULL, NULL);
}
@@ -2441,7 +2441,7 @@ handle_run_command (MetaDisplay *display,
s = g_strdup_printf (_("No command %d has been defined.\n"),
which + 1);
- error_on_command (which, NULL, s, screen->number, event->xkey.time);
+ error_on_command (which, NULL, s, screen->screen_name, event->xkey.time);
g_free (s);
return;
@@ -2450,7 +2450,7 @@ handle_run_command (MetaDisplay *display,
err = NULL;
if (!meta_spawn_command_line_async_on_screen (command, screen, &err))
{
- error_on_command (which, command, err->message, screen->number, event->xkey.time);
+ error_on_command (which, command, err->message, screen->screen_name, event->xkey.time);
g_error_free (err);
}
@@ -3058,7 +3058,6 @@ handle_toggle_above (MetaDisplay *display,
meta_window_make_above (window);
}
-/* TODO: actually use this keybinding, without messing up the existing keybinding schema */
static void
handle_toggle_tiled (MetaDisplay *display,
MetaScreen *screen,
@@ -3071,14 +3070,20 @@ handle_toggle_tiled (MetaDisplay *display,
if ((META_WINDOW_TILED_LEFT (window) && mode == META_TILE_LEFT) ||
(META_WINDOW_TILED_RIGHT (window) && mode == META_TILE_RIGHT))
{
- window->tile_mode = META_TILE_NONE;
-
if (window->saved_maximize)
- meta_window_maximize (window, META_MAXIMIZE_VERTICAL |
- META_MAXIMIZE_HORIZONTAL);
- else
- meta_window_unmaximize (window, META_MAXIMIZE_VERTICAL |
+ {
+ window->tile_mode = META_TILE_MAXIMIZED;
+ window->tile_monitor_number = meta_screen_get_xinerama_for_window (window->screen, window)->number;
+ meta_window_maximize (window, META_MAXIMIZE_VERTICAL |
META_MAXIMIZE_HORIZONTAL);
+ }
+ else
+ {
+ window->tile_mode = META_TILE_NONE;
+ window->tile_monitor_number = -1;
+ meta_window_unmaximize (window, META_MAXIMIZE_VERTICAL |
+ META_MAXIMIZE_HORIZONTAL);
+ }
}
else if (meta_window_can_tile (window))
{
@@ -3090,6 +3095,13 @@ handle_toggle_tiled (MetaDisplay *display,
* we just set the flag and rely on meta_window_tile() syncing it to
* save an additional roundtrip.
*/
+
+ /* If we skip meta_window_unmaximize we have to manually reset the
+ * window->saved_maximize flag.
+ */
+ if (!META_WINDOW_MAXIMIZED (window))
+ window->saved_maximize = FALSE;
+
window->maximized_horizontally = FALSE;
meta_window_tile (window);
}
@@ -3439,7 +3451,7 @@ handle_run_terminal (MetaDisplay *display,
"keybinding press\n");
s = g_strdup_printf (_("No terminal command has been defined.\n"));
- error_on_command (-1, NULL, s, screen->number, event->xkey.time);
+ error_on_command (-1, NULL, s, screen->screen_name, event->xkey.time);
g_free (s);
return;
@@ -3448,7 +3460,7 @@ handle_run_terminal (MetaDisplay *display,
err = NULL;
if (!meta_spawn_command_line_async_on_screen (command, screen, &err))
{
- error_on_command (-1, command, err->message, screen->number,
+ error_on_command (-1, command, err->message, screen->screen_name,
event->xkey.time);
g_error_free (err);
diff --git a/src/core/place.c b/src/core/place.c
index 99cedd14..bcfafe42 100644
--- a/src/core/place.c
+++ b/src/core/place.c
@@ -87,6 +87,47 @@ northwestcmp (gconstpointer a, gconstpointer b)
return 0;
}
+static gboolean
+place_by_pointer(MetaWindow *window,
+ MetaFrameGeometry *fgeom,
+ MetaPlacementMode placement_mode,
+ int *new_x,
+ int *new_y)
+{
+ int window_width, window_height;
+ Window root_return, child_return;
+ int root_x_return, root_y_return;
+ int win_x_return, win_y_return;
+ unsigned int mask_return;
+
+ XQueryPointer (window->display->xdisplay,
+ window->screen->xroot,
+ &root_return,
+ &child_return,
+ &root_x_return,
+ &root_y_return,
+ &win_x_return,
+ &win_y_return,
+ &mask_return);
+
+ window_width = window->frame ? window->frame->rect.width : window->rect.width;
+ window_height = window->frame ? window->frame->rect.height : window->rect.height;
+
+ if (fgeom) {
+ *new_x = root_x_return + fgeom->left_width - window_width / 2;
+ *new_y = root_y_return + fgeom->top_height - window_height / 2;
+ }
+ else {
+ *new_x = root_x_return - window_width / 2;
+ *new_y = root_y_return - window_height / 2;
+ }
+
+ if (placement_mode == META_PLACEMENT_MODE_MANUAL)
+ window->move_after_placement = TRUE;
+
+ return TRUE;
+}
+
static void
find_next_cascade (MetaWindow *window,
MetaFrameGeometry *fgeom,
@@ -663,6 +704,7 @@ meta_window_place (MetaWindow *window,
{
GList *windows;
const MetaXineramaScreenInfo *xi;
+ MetaPlacementMode placement_mode;
/* frame member variables should NEVER be used in here, only
* MetaFrameGeometry. But remember fgeom == NULL
@@ -853,6 +895,16 @@ meta_window_place (MetaWindow *window,
x = xi->rect.x;
y = xi->rect.y;
+ /* Placement based on pointer position */
+ placement_mode = meta_prefs_get_placement_mode();
+
+ if (placement_mode == META_PLACEMENT_MODE_POINTER ||
+ placement_mode == META_PLACEMENT_MODE_MANUAL)
+ {
+ if (place_by_pointer (window, fgeom, placement_mode, &x, &y))
+ goto done_check_denied_focus;
+ }
+
if (find_first_fit (window, fgeom, windows,
xi->number,
x, y, &x, &y))
diff --git a/src/core/prefs.c b/src/core/prefs.c
index 8847614e..2f3e9392 100644
--- a/src/core/prefs.c
+++ b/src/core/prefs.c
@@ -162,10 +162,14 @@ static void button_layout_handler (MetaPreference, const gchar*, gboolean*);
static gboolean update_binding (MetaKeyPref *binding,
gchar *value);
-static void init_bindings (void);
+static void init_bindings (GSettings *);
+static void init_screen_bindings (void);
+static void init_window_bindings (void);
static void init_commands (void);
static void init_workspace_names (void);
+static MetaPlacementMode placement_mode = META_PLACEMENT_MODE_AUTOMATIC;
+
typedef struct
{
MetaPrefsChangedFunc func;
@@ -315,6 +319,11 @@ static MetaEnumPreference preferences_enum[] =
META_PREF_ACTION_RIGHT_CLICK_TITLEBAR,
(gint *) &action_right_click_titlebar,
},
+ { "placement-mode",
+ KEY_GENERAL_SCHEMA,
+ META_PREF_PLACEMENT_MODE,
+ (gint *) &placement_mode,
+ },
{ NULL, NULL, 0, NULL },
};
@@ -890,13 +899,6 @@ meta_prefs_init (void)
g_hash_table_insert (settings_schemas, KEY_MATE_TERMINAL_SCHEMA, settings_mate_terminal);
g_hash_table_insert (settings_schemas, KEY_MATE_MOUSE_SCHEMA, settings_mate_mouse);
- /* Pick up initial values. */
-
- handle_preference_init_enum ();
- handle_preference_init_bool ();
- handle_preference_init_string ();
- handle_preference_init_int ();
-
g_signal_connect (settings_general, "changed", G_CALLBACK (change_notify), NULL);
g_signal_connect (settings_command, "changed", G_CALLBACK (change_notify), NULL);
g_signal_connect (settings_screen_bindings, "changed", G_CALLBACK (change_notify), NULL);
@@ -909,7 +911,15 @@ meta_prefs_init (void)
g_signal_connect (settings_mate_mouse, "changed::" KEY_MATE_MOUSE_CURSOR_THEME, G_CALLBACK (change_notify), NULL);
g_signal_connect (settings_mate_mouse, "changed::" KEY_MATE_MOUSE_CURSOR_SIZE, G_CALLBACK (change_notify), NULL);
- init_bindings ();
+ /* Pick up initial values. */
+
+ handle_preference_init_enum ();
+ handle_preference_init_bool ();
+ handle_preference_init_string ();
+ handle_preference_init_int ();
+
+ init_screen_bindings ();
+ init_window_bindings ();
init_commands ();
init_workspace_names ();
}
@@ -972,7 +982,7 @@ change_notify (GSettings *settings,
g_free(str);
}
- else if (g_strcmp0 (schema_name, KEY_WORKSPACE_NAME_SCHEMA))
+ else if (g_strcmp0 (schema_name, KEY_WORKSPACE_NAME_SCHEMA) == 0)
{
gchar *str;
str = g_settings_get_string (settings, key);
@@ -1553,6 +1563,9 @@ meta_preference_to_string (MetaPreference pref)
case META_PREF_SIDE_BY_SIDE_TILING:
return "SIDE_BY_SIDE_TILING";
+
+ case META_PREF_PLACEMENT_MODE:
+ return "PLACEMENT_MODE";
}
return "(unknown)";
@@ -1582,32 +1595,32 @@ static MetaKeyPref key_bindings[] = {
#undef keybind
static void
-init_bindings (void)
+init_bindings (GSettings *settings)
{
- const char *prefix[] = {
- KEY_WINDOW_BINDINGS_SCHEMA,
- KEY_SCREEN_BINDINGS_SCHEMA,
- NULL
- };
- int i;
gchar **list = NULL;
gchar *str_val = NULL;
- GSettings *bindings_settings = NULL;
- for (i = 0; prefix[i]; i++)
+ list = g_settings_list_keys (settings);
+ while (*list != NULL)
{
- bindings_settings = g_settings_new (prefix [i]);
- list = g_settings_list_keys (bindings_settings);
- while (*list != NULL)
- {
- str_val = g_settings_get_string (bindings_settings, *list);
- update_key_binding (*list, str_val);
- list++;
- }
+ str_val = g_settings_get_string (settings, *list);
+ update_key_binding (*list, str_val);
+ list++;
}
+
g_free (str_val);
- g_object_unref (bindings_settings);
+}
+
+static void
+init_screen_bindings (void)
+{
+ init_bindings (settings_screen_bindings);
+}
+static void
+init_window_bindings (void)
+{
+ init_bindings (settings_window_bindings);
}
static void
@@ -1623,6 +1636,7 @@ init_commands (void)
update_command (*list, str_val);
list++;
}
+
g_free (str_val);
}
@@ -1639,6 +1653,7 @@ init_workspace_names (void)
update_workspace_name (*list, str_val);
list++;
}
+
g_free (str_val);
}
@@ -2236,6 +2251,12 @@ meta_prefs_get_force_fullscreen (void)
return force_fullscreen;
}
+MetaPlacementMode
+meta_prefs_get_placement_mode (void)
+{
+ return placement_mode;
+}
+
void
meta_prefs_set_force_compositing_manager (gboolean whether)
{
diff --git a/src/core/window-private.h b/src/core/window-private.h
index 20e619cb..0b3cf594 100644
--- a/src/core/window-private.h
+++ b/src/core/window-private.h
@@ -139,6 +139,9 @@ struct _MetaWindow
guint maximize_vertically_after_placement : 1;
guint minimize_after_placement : 1;
+ /* Whether to move after placement */
+ guint move_after_placement : 1;
+
/* The current or requested tile mode. If maximized_vertically is true,
* this is the current mode. If not, it is the mode which will be
* requested after the window grab is released */
diff --git a/src/core/window.c b/src/core/window.c
index 95d49885..30ebfa85 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -461,6 +461,7 @@ meta_window_new_with_attrs (MetaDisplay *display,
window->maximize_horizontally_after_placement = FALSE;
window->maximize_vertically_after_placement = FALSE;
window->minimize_after_placement = FALSE;
+ window->move_after_placement = FALSE;
window->fullscreen = FALSE;
window->fullscreen_after_placement = FALSE;
window->fullscreen_monitors[0] = -1;
@@ -2346,6 +2347,13 @@ meta_window_show (MetaWindow *window)
if (takes_focus_on_map)
{
meta_window_focus (window, timestamp);
+
+ if (window->move_after_placement)
+ {
+ meta_window_begin_grab_op(window, META_GRAB_OP_KEYBOARD_MOVING,
+ FALSE, timestamp);
+ window->move_after_placement = FALSE;
+ }
}
else
{
@@ -2670,14 +2678,9 @@ meta_window_maximize (MetaWindow *window,
if (window->tile_mode != META_TILE_NONE)
{
saved_rect = &window->saved_rect;
- window->maximized_vertically = FALSE;
- }
-
- if (window->tile_mode != META_TILE_NONE)
- {
- saved_rect = &window->saved_rect;
window->maximized_vertically = FALSE;
+ window->tile_mode = META_TILE_NONE;
}
meta_window_maximize_internal (window,
@@ -2751,7 +2754,7 @@ meta_window_can_tile (MetaWindow *window)
MetaRectangle tile_area;
/*if (!META_WINDOW_ALLOWS_RESIZE (window))*/
- if (!META_WINDOW_ALLOWS_RESIZE (window))
+ if (!meta_window_can_tile_maximized (window) || window->shaded)
return FALSE;
monitor = meta_screen_get_current_xinerama (window->screen);
@@ -2780,15 +2783,6 @@ meta_window_unmaximize (MetaWindow *window,
/* At least one of the two directions ought to be set */
gboolean unmaximize_horizontally, unmaximize_vertically;
- /* Restore tiling if necessary */
- if (window->tile_mode == META_TILE_LEFT ||
- window->tile_mode == META_TILE_RIGHT)
- {
- window->maximized_horizontally = FALSE;
- meta_window_tile (window);
- return;
- }
-
unmaximize_horizontally = directions & META_MAXIMIZE_HORIZONTAL;
unmaximize_vertically = directions & META_MAXIMIZE_VERTICAL;
g_assert (unmaximize_horizontally || unmaximize_vertically);
@@ -3333,6 +3327,7 @@ send_sync_request (MetaWindow *window)
ev.data.l[1] = meta_display_get_current_time (window->display);
ev.data.l[2] = XSyncValueLow32 (value);
ev.data.l[3] = XSyncValueHigh32 (value);
+ ev.data.l[4] = 0;
/* We don't need to trap errors here as we are already
* inside an error_trap_push()/pop() pair.
@@ -5194,8 +5189,7 @@ meta_window_client_message (MetaWindow *window,
{
meta_verbose ("WM_CHANGE_STATE client message, state: %ld\n",
event->xclient.data.l[0]);
- if (event->xclient.data.l[0] == IconicState &&
- window->has_minimize_func)
+ if (event->xclient.data.l[0] == IconicState)
meta_window_minimize (window);
return TRUE;
@@ -5599,6 +5593,8 @@ static gboolean
process_property_notify (MetaWindow *window,
XPropertyEvent *event)
{
+ Window xid = window->xwindow;
+
if (meta_is_verbose ()) /* avoid looking up the name if we don't have to */
{
char *property_name = XGetAtomName (window->display->xdisplay,
@@ -5609,7 +5605,13 @@ process_property_notify (MetaWindow *window,
XFree (property_name);
}
- meta_window_reload_property (window, event->atom, FALSE);
+ if (event->atom == window->display->atom__NET_WM_USER_TIME &&
+ window->user_time_window)
+ {
+ xid = window->user_time_window;
+ }
+
+ meta_window_reload_property_from_xwindow (window, xid, event->atom, FALSE);
return TRUE;
}
@@ -6735,8 +6737,8 @@ meta_window_show_menu (MetaWindow *window,
if (!window->has_maximize_func)
insensitive |= META_MENU_OP_UNMAXIMIZE | META_MENU_OP_MAXIMIZE;
- /*if (!window->has_minimize_func)
- insensitive |= META_MENU_OP_MINIMIZE;*/
+ if (!window->has_minimize_func)
+ insensitive |= META_MENU_OP_MINIMIZE;
/*if (!window->has_close_func)
insensitive |= META_MENU_OP_DELETE;*/
diff --git a/src/core/workspace.c b/src/core/workspace.c
index d61529d2..e2a397a0 100644
--- a/src/core/workspace.c
+++ b/src/core/workspace.c
@@ -382,6 +382,10 @@ meta_workspace_activate_with_focus (MetaWorkspace *workspace,
if (workspace->screen->active_workspace)
workspace_switch_sound(workspace->screen->active_workspace, workspace);
+ /* Free any cached pointers to the workspaces's edges from
+ * a current resize or move operation */
+ meta_display_cleanup_edges (workspace->screen->display);
+
/* Note that old can be NULL; e.g. when starting up */
old = workspace->screen->active_workspace;
@@ -545,6 +549,11 @@ meta_workspace_invalidate_work_area (MetaWorkspace *workspace)
"Invalidating work area for workspace %d\n",
meta_workspace_index (workspace));
+ /* If we are in the middle of a resize or move operation, we
+ * might have cached pointers to the workspace's edges */
+ if (workspace == workspace->screen->active_workspace)
+ meta_display_cleanup_edges (workspace->screen->display);
+
g_free (workspace->work_area_xinerama);
workspace->work_area_xinerama = NULL;
diff --git a/src/core/xprops.c b/src/core/xprops.c
index f9b4578a..a54e2185 100644
--- a/src/core/xprops.c
+++ b/src/core/xprops.c
@@ -264,6 +264,16 @@ cardinal_list_from_results (GetPropertyResults *results,
*n_cardinals_p = results->n_items;
results->prop = NULL;
+#if GLIB_SIZEOF_LONG == 8
+ /* Xlib sign-extends format=32 items, but we want them unsigned */
+ {
+ int i;
+
+ for (i = 0; i < *n_cardinals_p; i++)
+ (*cardinals_p)[i] = (*cardinals_p)[i] & 0xffffffff;
+ }
+#endif
+
return TRUE;
}
@@ -608,6 +618,10 @@ cardinal_with_atom_type_from_results (GetPropertyResults *results,
return FALSE;
*cardinal_p = *(gulong*) results->prop;
+#if GLIB_SIZEOF_LONG == 8
+ /* Xlib sign-extends format=32 items, but we want them unsigned */
+ *cardinal_p &= 0xffffffff;
+#endif
XFree (results->prop);
results->prop = NULL;
@@ -632,6 +646,29 @@ meta_prop_get_cardinal_with_atom_type (MetaDisplay *display,
return cardinal_with_atom_type_from_results (&results, prop_type, cardinal_p);
}
+static char *
+text_property_to_utf8 (Display *xdisplay,
+ const XTextProperty *prop)
+{
+ char *ret = NULL;
+ char **local_list = NULL;
+ int count = 0;
+ int res;
+
+ res = XmbTextPropertyToTextList (xdisplay, prop, &local_list, &count);
+ if (res == XNoMemory || res == XLocaleNotSupported || res == XConverterNotFound)
+ goto out;
+
+ if (count == 0)
+ goto out;
+
+ ret = g_strdup (local_list[0]);
+
+ out:
+ meta_XFree (local_list);
+ return ret;
+}
+
static gboolean
text_property_from_results (GetPropertyResults *results,
char **utf8_str_p)
@@ -646,8 +683,7 @@ text_property_from_results (GetPropertyResults *results,
tp.format = results->format;
tp.nitems = results->n_items;
- *utf8_str_p = meta_text_property_to_utf8 (results->display->xdisplay,
- &tp);
+ *utf8_str_p = text_property_to_utf8 (results->display->xdisplay, &tp);
if (tp.value != NULL)
XFree (tp.value);
diff --git a/src/include/all-keybindings.h b/src/include/all-keybindings.h
index 50532c4b..a26720a1 100644
--- a/src/include/all-keybindings.h
+++ b/src/include/all-keybindings.h
@@ -252,6 +252,11 @@ keybind (maximize-vertically, handle_maximize_vertically, 0,
keybind (maximize-horizontally, handle_maximize_horizontally, 0,
BINDING_PER_WINDOW)
+keybind (tile-to-side-e, handle_toggle_tiled, META_TILE_RIGHT,
+ BINDING_PER_WINDOW)
+keybind (tile-to-side-w, handle_toggle_tiled, META_TILE_LEFT,
+ BINDING_PER_WINDOW)
+
keybind (move-to-corner-nw, handle_move_to_corner_nw, 0,
BINDING_PER_WINDOW)
keybind (move-to-corner-ne, handle_move_to_corner_ne, 0,
diff --git a/src/include/common.h b/src/include/common.h
index 69755e24..74137967 100644
--- a/src/include/common.h
+++ b/src/include/common.h
@@ -312,4 +312,14 @@ struct _MetaButtonLayout
(ycoord) >= (rect).y && \
(ycoord) < ((rect).y + (rect).height))
+/*
+ * Placement mode
+ */
+typedef enum
+{
+ META_PLACEMENT_MODE_AUTOMATIC,
+ META_PLACEMENT_MODE_POINTER,
+ META_PLACEMENT_MODE_MANUAL
+} MetaPlacementMode;
+
#endif
diff --git a/src/include/display.h b/src/include/display.h
index a8dc49eb..5b0e5642 100644
--- a/src/include/display.h
+++ b/src/include/display.h
@@ -29,9 +29,6 @@
#define meta_XFree(p) do { if ((p)) XFree ((p)); } while (0)
-void meta_display_get_compositor_version (MetaDisplay *display,
- int *major,
- int *minor);
Display *meta_display_get_xdisplay (MetaDisplay *display);
MetaCompositor *meta_display_get_compositor (MetaDisplay *display);
GSList *meta_display_get_screens (MetaDisplay *display);
diff --git a/src/include/prefs.h b/src/include/prefs.h
index d804207c..a2fbbf55 100644
--- a/src/include/prefs.h
+++ b/src/include/prefs.h
@@ -64,7 +64,8 @@ typedef enum
META_PREF_RESIZE_WITH_RIGHT_BUTTON,
META_PREF_CENTER_NEW_WINDOWS,
META_PREF_SIDE_BY_SIDE_TILING,
- META_PREF_FORCE_FULLSCREEN
+ META_PREF_FORCE_FULLSCREEN,
+ META_PREF_PLACEMENT_MODE
} MetaPreference;
typedef void (* MetaPrefsChangedFunc) (MetaPreference pref,
@@ -112,6 +113,8 @@ MetaActionTitlebar meta_prefs_get_action_double_click_titlebar (void);
MetaActionTitlebar meta_prefs_get_action_middle_click_titlebar (void);
MetaActionTitlebar meta_prefs_get_action_right_click_titlebar (void);
+MetaPlacementMode meta_prefs_get_placement_mode (void);
+
void meta_prefs_set_num_workspaces (int n_workspaces);
const char* meta_prefs_get_workspace_name (int i);
diff --git a/src/include/ui.h b/src/include/ui.h
index e7ce90aa..70987d33 100644
--- a/src/include/ui.h
+++ b/src/include/ui.h
@@ -134,20 +134,6 @@ void meta_ui_window_menu_popup (MetaWindowMenu *menu,
guint32 timestamp);
void meta_ui_window_menu_free (MetaWindowMenu *menu);
-#if !GTK_CHECK_VERSION (3, 0, 0)
-MetaImageWindow* meta_image_window_new (Display *xdisplay,
- int screen_number,
- int max_width,
- int max_height);
-void meta_image_window_free (MetaImageWindow *iw);
-void meta_image_window_set_showing (MetaImageWindow *iw,
- gboolean showing);
-void meta_image_window_set (MetaImageWindow *iw,
- GdkPixbuf *pixbuf,
- int x,
- int y);
-#endif
-
GdkPixbuf* meta_gdk_pixbuf_get_from_pixmap (GdkPixbuf *dest,
Pixmap xpixmap,
int src_x,
@@ -170,9 +156,6 @@ GdkPixbuf* meta_ui_get_default_mini_icon (MetaUI *ui);
gboolean meta_ui_window_should_not_cause_focus (Display *xdisplay,
Window xwindow);
-char* meta_text_property_to_utf8 (Display *xdisplay,
- const XTextProperty *prop);
-
void meta_ui_set_current_theme (const char *name,
gboolean force_reload);
gboolean meta_ui_have_a_theme (void);
diff --git a/src/marco.convert b/src/marco.convert
index eb1f623b..21c8799f 100644
--- a/src/marco.convert
+++ b/src/marco.convert
@@ -142,6 +142,8 @@ raise = /apps/marco/window_keybindings/raise
lower = /apps/marco/window_keybindings/lower
maximize-vertically = /apps/marco/window_keybindings/maximize_vertically
maximize-horizontally = /apps/marco/window_keybindings/maximize_horizontally
+tile-to-side-e = /apps/marco/window_keybindings/tile_to_side_e
+tile-to-side-w = /apps/marco/window_keybindings/tile_to_side_w
move-to-corner-nw = /apps/marco/window_keybindings/move_to_corner_nw
move-to-corner-ne = /apps/marco/window_keybindings/move_to_corner_ne
move-to-corner-sw = /apps/marco/window_keybindings/move_to_corner_sw
diff --git a/src/org.mate.marco.gschema.xml b/src/org.mate.marco.gschema.xml
index 5a1bef84..6b4a8562 100644
--- a/src/org.mate.marco.gschema.xml
+++ b/src/org.mate.marco.gschema.xml
@@ -30,6 +30,11 @@
<value nick="menu" value="7"/>
<value nick="last" value="8"/>
</enum>
+ <enum id="org.mate.Marco.placement_type">
+ <value value="0" nick="automatic"/>
+ <value value="1" nick="pointer"/>
+ <value value="2" nick="manual"/>
+ </enum>
<schema id="org.mate.Marco" path="/org/mate/marco/">
<child name="general" schema="org.mate.Marco.general"/>
@@ -171,6 +176,11 @@
<summary>Whether to enable side-by-side tiling</summary>
<description>If enabled, dropping windows on screen edges maximizes them vertically and resizes them horizontally to cover half of the available area. Drag-dropping to the top maximizes the window.</description>
</key>
+ <key name="placement-mode" enum="org.mate.Marco.placement_type">
+ <default>'automatic'</default>
+ <summary>Window placement mode</summary>
+ <description>The window placement mode indicates how new windows are positioned. "automatic" means the system chooses a location automatically based on the space available on the desktop, or by a simple cascade if there is no space; "pointer" means that new windows are placed according to the mouse pointer position; "manual" means that the user must manually place the new window with the mouse or keyboard.</description>
+ </key>
</schema>
<schema id="org.mate.Marco.workspace-names" path="/org/mate/marco/workspace-names/">
@@ -843,6 +853,16 @@
<summary>Maximize window horizontally</summary>
<description>The format looks like "&lt;Control&gt;a" or "&lt;Shift&gt;&lt;Alt&gt;F1". The parser is fairly liberal and allows lower or upper case, and also abbreviations such as "&lt;Ctl&gt;" and "&lt;Ctrl&gt;". If you set the option to the special string "disabled", then there will be no keybinding for this action.</description>
</key>
+ <key name="tile-to-side-e" type="s">
+ <default>'disabled'</default>
+ <summary>Tile window to east (right) side of screen</summary>
+ <description>The format looks like "&lt;Control&gt;a" or "&lt;Shift&gt;&lt;Alt&gt;F1". The parser is fairly liberal and allows lower or upper case, and also abbreviations such as "&lt;Ctl&gt;" and "&lt;Ctrl&gt;". If you set the option to the special string "disabled", then there will be no keybinding for this action.</description>
+ </key>
+ <key name="tile-to-side-w" type="s">
+ <default>'disabled'</default>
+ <summary>Tile window to west (left) side of screen</summary>
+ <description>The format looks like "&lt;Control&gt;a" or "&lt;Shift&gt;&lt;Alt&gt;F1". The parser is fairly liberal and allows lower or upper case, and also abbreviations such as "&lt;Ctl&gt;" and "&lt;Ctrl&gt;". If you set the option to the special string "disabled", then there will be no keybinding for this action.</description>
+ </key>
<key name="move-to-corner-nw" type="s">
<default>'disabled'</default>
<summary>Move window to north-west (top left) corner</summary>
diff --git a/src/tools/marco-window-demo.c b/src/tools/marco-window-demo.c
index 1585b385..edff5f71 100644
--- a/src/tools/marco-window-demo.c
+++ b/src/tools/marco-window-demo.c
@@ -74,19 +74,22 @@ static void
on_realize_set_struts (GtkWindow *window,
gpointer data)
{
+ GtkWidget *widget;
int left;
int right;
int top;
int bottom;
- g_return_if_fail (gtk_widget_get_realized (GTK_WIDGET (window)));
+ widget = GTK_WIDGET (window);
+
+ g_return_if_fail (gtk_widget_get_realized (widget));
left = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (window), "meta-strut-left"));
right = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (window), "meta-strut-right"));
top = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (window), "meta-strut-top"));
bottom = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (window), "meta-strut-bottom"));
- set_gdk_window_struts (gtk_widget_get_window (GTK_WIDGET (window)),
+ set_gdk_window_struts (gtk_widget_get_window (widget),
left, right, top, bottom);
}
@@ -97,6 +100,10 @@ set_gtk_window_struts (GtkWidget *window,
int top,
int bottom)
{
+ GtkWidget *widget;
+
+ widget = GTK_WIDGET (window);
+
g_object_set_data (G_OBJECT (window), "meta-strut-left",
GINT_TO_POINTER (left));
g_object_set_data (G_OBJECT (window), "meta-strut-right",
@@ -115,8 +122,8 @@ set_gtk_window_struts (GtkWidget *window,
G_CALLBACK (on_realize_set_struts),
NULL);
- if (gtk_widget_get_realized (GTK_WIDGET (window)))
- set_gdk_window_struts (gtk_widget_get_window (GTK_WIDGET (window)),
+ if (gtk_widget_get_realized (widget))
+ set_gdk_window_struts (gtk_widget_get_window (widget),
left, right, top, bottom);
}
@@ -157,6 +164,10 @@ static void
set_gtk_window_type (GtkWindow *window,
const char *type)
{
+ GtkWidget *widget;
+
+ widget = GTK_WIDGET (window);
+
g_object_set_data (G_OBJECT (window), "meta-window-type", (char*) type);
g_signal_handlers_disconnect_by_func (G_OBJECT (window),
@@ -168,8 +179,8 @@ set_gtk_window_type (GtkWindow *window,
G_CALLBACK (on_realize_set_type),
NULL);
- if (gtk_widget_get_realized (GTK_WIDGET (window)))
- set_gdk_window_type (gtk_widget_get_window (GTK_WIDGET (window)),
+ if (gtk_widget_get_realized (widget))
+ set_gdk_window_type (gtk_widget_get_window (widget),
type);
}
@@ -183,14 +194,22 @@ static void
on_realize_set_border_only (GtkWindow *window,
gpointer data)
{
- g_return_if_fail (gtk_widget_get_realized (GTK_WIDGET (window)));
+ GtkWidget *widget;
+
+ widget = GTK_WIDGET (window);
- set_gdk_window_border_only (gtk_widget_get_window (GTK_WIDGET (window)));
+ g_return_if_fail (gtk_widget_get_realized (widget));
+
+ set_gdk_window_border_only (gtk_widget_get_window (widget));
}
static void
set_gtk_window_border_only (GtkWindow *window)
{
+GtkWidget *widget;
+
+ widget = GTK_WIDGET (window);
+
g_signal_handlers_disconnect_by_func (G_OBJECT (window),
on_realize_set_border_only,
NULL);
@@ -200,8 +219,8 @@ set_gtk_window_border_only (GtkWindow *window)
G_CALLBACK (on_realize_set_border_only),
NULL);
- if (gtk_widget_get_realized (GTK_WIDGET (window)))
- set_gdk_window_border_only (gtk_widget_get_window (GTK_WIDGET (window)));
+ if (gtk_widget_get_realized (widget))
+ set_gdk_window_border_only (gtk_widget_get_window (widget));
}
int
@@ -307,9 +326,8 @@ dialog_cb (GSimpleAction *action,
gpointer callback_data)
#else
static void
-dialog_cb (gpointer callback_data,
- guint callback_action,
- GtkWidget *widget)
+dialog_cb (GtkAction *action,
+ gpointer callback_data)
#endif
{
make_dialog (GTK_WIDGET (callback_data), 1);
@@ -322,9 +340,8 @@ modal_dialog_cb (GSimpleAction *action,
gpointer callback_data)
#else
static void
-modal_dialog_cb (gpointer callback_data,
- guint callback_action,
- GtkWidget *widget)
+modal_dialog_cb (GtkAction *action,
+ gpointer callback_data)
#endif
{
GtkWidget *dialog;
@@ -349,9 +366,8 @@ no_parent_dialog_cb (GSimpleAction *action,
gpointer callback_data)
#else
static void
-no_parent_dialog_cb (gpointer callback_data,
- guint callback_action,
- GtkWidget *widget)
+no_parent_dialog_cb (GtkAction *action,
+ gpointer callback_data)
#endif
{
make_dialog (NULL, 1);
@@ -364,9 +380,8 @@ utility_cb (GSimpleAction *action,
gpointer callback_data)
#else
static void
-utility_cb (gpointer callback_data,
- guint callback_action,
- GtkWidget *widget)
+utility_cb (GtkAction *action,
+ gpointer callback_data)
#endif
{
GtkWidget *window;
@@ -405,9 +420,8 @@ toolbar_cb (GSimpleAction *action,
gpointer callback_data)
#else
static void
-toolbar_cb (gpointer callback_data,
- guint callback_action,
- GtkWidget *widget)
+toolbar_cb (GtkAction *action,
+ gpointer callback_data)
#endif
{
GtkWidget *window;
@@ -437,9 +451,8 @@ menu_cb (GSimpleAction *action,
gpointer callback_data)
#else
static void
-menu_cb (gpointer callback_data,
- guint callback_action,
- GtkWidget *widget)
+menu_cb (GtkAction *action,
+ gpointer callback_data)
#endif
{
GtkWidget *window;
@@ -469,9 +482,8 @@ override_redirect_cb (GSimpleAction *action,
gpointer callback_data)
#else
static void
-override_redirect_cb (gpointer callback_data,
- guint callback_action,
- GtkWidget *widget)
+override_redirect_cb (GtkAction *action,
+ gpointer callback_data)
#endif
{
GtkWidget *window;
@@ -498,9 +510,8 @@ border_only_cb (GSimpleAction *action,
gpointer callback_data)
#else
static void
-border_only_cb (gpointer callback_data,
- guint callback_action,
- GtkWidget *widget)
+border_only_cb (GtkAction *action,
+ gpointer callback_data)
#endif
{
GtkWidget *window;
@@ -575,9 +586,8 @@ splashscreen_cb (GSimpleAction *action,
gpointer callback_data)
#else
static void
-splashscreen_cb (gpointer callback_data,
- guint callback_action,
- GtkWidget *widget)
+splashscreen_cb (GtkAction *action,
+ gpointer callback_data)
#endif
{
GtkWidget *window;
@@ -691,15 +701,14 @@ dock_cb (GSimpleAction *action,
gpointer callback_data)
#else
static void
-dock_cb (gpointer callback_data,
- guint callback_action,
- GtkWidget *widget)
+dock_cb (GtkAction *action,
+ gpointer callback_data)
#endif
{
-#if GTK_CHECK_VERSION (3, 0, 0)
guint callback_action;
const gchar *name;
+#if GTK_CHECK_VERSION (3, 0, 0)
g_object_get (G_OBJECT (action), "name", &name, NULL);
if (!g_strcmp0 (name, "top-dock"))
@@ -714,6 +723,21 @@ dock_cb (gpointer callback_data,
callback_action = DOCK_ALL;
else
return;
+#else
+ name = gtk_action_get_name (action);
+
+ if (!g_strcmp0 (name, "Top dock"))
+ callback_action = DOCK_TOP;
+ else if (!g_strcmp0 (name, "Bottom dock"))
+ callback_action = DOCK_BOTTOM;
+ else if (!g_strcmp0 (name, "Left dock"))
+ callback_action = DOCK_LEFT;
+ else if (!g_strcmp0 (name, "Right dock"))
+ callback_action = DOCK_RIGHT;
+ else if (!g_strcmp0 (name, "All docks"))
+ callback_action = DOCK_ALL;
+ else
+ return;
#endif
if (callback_action == DOCK_ALL)
{
@@ -735,9 +759,8 @@ desktop_cb (GSimpleAction *action,
gpointer callback_data)
#else
static void
-desktop_cb (gpointer callback_data,
- guint callback_action,
- GtkWidget *widget)
+desktop_cb (GtkAction *action,
+ gpointer callback_data)
#endif
{
GtkWidget *window;
@@ -777,30 +800,6 @@ desktop_cb (gpointer callback_data,
gtk_widget_show_all (window);
}
-#if !GTK_CHECK_VERSION(3, 0, 0)
-static GtkItemFactoryEntry menu_items[] =
-{
- { "/_Windows", NULL, NULL, 0, "<Branch>" },
- { "/Windows/tearoff", NULL, NULL, 0, "<Tearoff>" },
- { "/Windows/_Dialog", "<control>d", dialog_cb, 0, NULL },
- { "/Windows/_Modal dialog", NULL, modal_dialog_cb, 0, NULL },
- { "/Windows/_Parentless dialog", NULL, no_parent_dialog_cb, 0, NULL },
- { "/Windows/_Utility", "<control>u", utility_cb, 0, NULL },
- { "/Windows/_Splashscreen", "<control>s", splashscreen_cb, 0, NULL },
- { "/Windows/_Top dock", NULL, dock_cb, DOCK_TOP, NULL },
- { "/Windows/_Bottom dock", NULL, dock_cb, DOCK_BOTTOM, NULL },
- { "/Windows/_Left dock", NULL, dock_cb, DOCK_LEFT, NULL },
- { "/Windows/_Right dock", NULL, dock_cb, DOCK_RIGHT, NULL },
- { "/Windows/_All docks", NULL, dock_cb, DOCK_ALL, NULL },
- { "/Windows/Des_ktop", NULL, desktop_cb, 0, NULL },
- { "/Windows/Me_nu", NULL, menu_cb, 0, NULL },
- { "/Windows/Tool_bar", NULL, toolbar_cb, 0, NULL },
- { "/Windows/Override Redirect", NULL, override_redirect_cb, 0, NULL },
- { "/Windows/Border Only", NULL, border_only_cb, 0, NULL }
-};
-
-#endif
-
#if GTK_CHECK_VERSION (3, 0, 0)
static void
sleep_cb (GSimpleAction *action,
@@ -808,7 +807,7 @@ sleep_cb (GSimpleAction *action,
gpointer data)
#else
static void
-sleep_cb (GtkWidget *button,
+sleep_cb (GtkAction *action,
gpointer data)
#endif
{
@@ -822,12 +821,13 @@ toggle_aspect_ratio (GSimpleAction *action,
gpointer data)
#else
static void
-toggle_aspect_ratio (GtkWidget *button,
+toggle_aspect_ratio (GtkAction *action,
gpointer data)
#endif
{
GtkWidget *window;
GdkGeometry geom;
+ GtkWidget *widget = GTK_WIDGET (data);
if (aspect_on)
{
@@ -842,11 +842,7 @@ toggle_aspect_ratio (GtkWidget *button,
aspect_on = !aspect_on;
-#if GTK_CHECK_VERSION(3, 0, 0)
- window = gtk_widget_get_ancestor (GTK_WIDGET(data), GTK_TYPE_WINDOW);
-#else
- window = gtk_widget_get_ancestor (button, GTK_TYPE_WINDOW);
-#endif
+ window = gtk_widget_get_ancestor (widget, GTK_TYPE_WINDOW);
if (window)
gtk_window_set_geometry_hints (GTK_WINDOW (window),
GTK_WIDGET (data),
@@ -867,11 +863,7 @@ toggle_decorated_cb (GtkWidget *button,
#endif
{
GtkWidget *window;
-#if GTK_CHECK_VERSION (3, 0, 0)
window = gtk_widget_get_ancestor (data, GTK_TYPE_WINDOW);
-#else
- window = gtk_widget_get_ancestor (button, GTK_TYPE_WINDOW);
-#endif
if (window)
gtk_window_set_decorated (GTK_WINDOW (window),
!gtk_window_get_decorated (GTK_WINDOW (window)));
@@ -1088,6 +1080,90 @@ create_toolbar (void)
return toolbar;
}
+#else
+static const gchar *menu_item_string =
+ "<ui>\n"
+ "<menubar>\n"
+ "<menu name='Windows' action='Windows'>\n"
+ "<menuitem name='Dialog' action='Dialog'/>\n"
+ "<menuitem name='Modal dialog' action='Modal dialog'/>\n"
+ "<menuitem name='Parentless dialog' action='Parentless dialog'/>\n"
+ "<menuitem name='Utility' action='Utility'/>\n"
+ "<menuitem name='Splashscreen' action='Splashscreen'/>\n"
+ "<menuitem name='Top dock' action='Top dock'/>\n"
+ "<menuitem name='Bottom dock' action='Bottom dock'/>\n"
+ "<menuitem name='Left dock' action='Left dock'/>\n"
+ "<menuitem name='Right dock' action='Right dock'/>\n"
+ "<menuitem name='All docks' action='All docks'/>\n"
+ "<menuitem name='Desktop' action='Desktop'/>\n"
+ "<menuitem name='Menu' action='Menu'/>\n"
+ "<menuitem name='Toolbar' action='Toolbar'/>\n"
+ "<menuitem name='Override Redirect' action='Override Redirect'/>\n"
+ "<menuitem name='Border Only' action='Border Only'/>\n"
+ "</menu>\n"
+ "</menubar>\n"
+ "<toolbar>\n"
+ "<toolitem name='New' action='New'/>\n"
+ "<toolitem name='Lock' action='Lock'/>\n"
+ "<toolitem name='Decorations' action='Decorations'/>\n"
+ "<toolitem name='Ratio' action='Ratio'/>\n"
+ "<toolitem name='Quit' action='Quit'/>\n"
+ "</toolbar>\n"
+ "</ui>\n";
+
+static const GtkActionEntry menu_items[] =
+{
+ { "Windows", NULL, "_Windows", NULL,
+ NULL, NULL },
+ { "Dialog", NULL, "_Dialog", "<control>d",
+ NULL, G_CALLBACK (dialog_cb) },
+ { "Modal dialog", NULL, "_Modal dialog", NULL,
+ NULL, G_CALLBACK (modal_dialog_cb) },
+ { "Parentless dialog", NULL, "_Parentless dialog", NULL,
+ NULL, G_CALLBACK (no_parent_dialog_cb) },
+ { "Utility", NULL, "_Utility", "<control>u",
+ NULL, G_CALLBACK (utility_cb) },
+ { "Splashscreen", NULL, "_Splashscreen", "<control>s",
+ NULL, G_CALLBACK (splashscreen_cb) },
+ { "Top dock", NULL, "_Top dock", NULL,
+ NULL, G_CALLBACK (dock_cb) },
+ { "Bottom dock", NULL, "_Bottom dock", NULL,
+ NULL, G_CALLBACK (dock_cb) },
+ { "Left dock", NULL, "_Left dock", NULL,
+ NULL, G_CALLBACK (dock_cb) },
+ { "Right dock", NULL, "_Right dock", NULL,
+ NULL, G_CALLBACK (dock_cb) },
+ { "All docks", NULL, "_All docks", NULL,
+ NULL, G_CALLBACK (dock_cb) },
+ { "Desktop", NULL, "Des_ktop", NULL,
+ NULL, G_CALLBACK (desktop_cb) },
+ { "Menu", NULL, "Me_nu", NULL,
+ NULL, G_CALLBACK (menu_cb) },
+ { "Toolbar", NULL, "Tool_bar", NULL,
+ NULL, G_CALLBACK (toolbar_cb) },
+ { "Override Redirect", NULL, "Override Redirect", NULL,
+ NULL, G_CALLBACK (override_redirect_cb) },
+ { "Border Only", NULL, "Border Only", NULL,
+ NULL, G_CALLBACK (border_only_cb) }
+};
+
+static const GtkActionEntry tool_items[] =
+{
+ { "New", GTK_STOCK_NEW, NULL, NULL,
+ "Open another one of these windows", G_CALLBACK (do_appwindow) },
+ { "Lock", GTK_STOCK_OPEN, NULL, NULL,
+ "This is a demo button that"
+ " locks up the demo", G_CALLBACK (sleep_cb) },
+ { "Decorations", GTK_STOCK_OPEN, NULL, NULL,
+ "This is a demo button that "
+ "toggles window decorations", G_CALLBACK (toggle_decorated_cb) },
+ { "Quit", GTK_STOCK_QUIT, NULL, NULL,
+ "This is a demo button with "
+ " a 'quit' icon", G_CALLBACK (clicked_toolbar_cb) },
+ { "Ratio", GTK_STOCK_OPEN, NULL, NULL,
+ "This is a demo button that locks the aspect ratio "
+ "using a hint", G_CALLBACK (toggle_aspect_ratio) }
+};
#endif
#if GTK_CHECK_VERSION (3, 0, 0)
@@ -1103,27 +1179,20 @@ do_appwindow (void)
GtkWidget *window;
#if GTK_CHECK_VERSION (3, 0, 0)
GtkWidget *grid;
+ GtkWidget *toolbar;
+ GSimpleActionGroup *action_group;
+ GtkBuilder *builder;
#else
GtkWidget *table;
-#endif
- GtkWidget *toolbar;
-#if !GTK_CHECK_VERSION (3, 0, 0)
GtkWidget *handlebox;
+ GtkActionGroup *action_group;
+ GtkUIManager *ui_manager;
#endif
GtkWidget *statusbar;
GtkWidget *contents;
GtkWidget *sw;
GtkTextBuffer *buffer;
- #if GTK_CHECK_VERSION(3, 0, 0)
- GSimpleActionGroup *action_group;
- GtkBuilder *builder;
- #else
- GtkAccelGroup *accel_group;
- GtkItemFactory *item_factory;
- #endif
-
-
/* Create the toplevel window
*/
@@ -1179,27 +1248,27 @@ do_appwindow (void)
/* Create the menubar
*/
- accel_group = gtk_accel_group_new ();
- gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);
- g_object_unref (accel_group);
+ contents = gtk_text_view_new ();
+
+ action_group = gtk_action_group_new ("mainmenu");
+ gtk_action_group_add_actions (action_group,
+ menu_items,
+ G_N_ELEMENTS (menu_items),
+ window);
+ gtk_action_group_add_actions (action_group,
+ tool_items,
+ G_N_ELEMENTS (tool_items),
+ window);
- item_factory = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>", accel_group);
+ ui_manager = gtk_ui_manager_new ();
- /* Set up item factory to go away with the window */
- g_object_ref (item_factory);
- g_object_ref_sink (item_factory);
- g_object_unref (item_factory);
- g_object_set_data_full (G_OBJECT (window),
- "<main>",
- item_factory,
- (GDestroyNotify) g_object_unref);
+ gtk_ui_manager_insert_action_group (ui_manager, action_group, 0);
/* create menu items */
- gtk_item_factory_create_items (item_factory, G_N_ELEMENTS (menu_items),
- menu_items, window);
+ gtk_ui_manager_add_ui_from_string (ui_manager, menu_item_string, -1, NULL);
gtk_table_attach (GTK_TABLE (table),
- gtk_item_factory_get_widget (item_factory, "<main>"),
+ gtk_ui_manager_get_widget (ui_manager, "/ui/menubar"),
/* X direction */ /* Y direction */
0, 1, 0, 1,
GTK_EXPAND | GTK_FILL, 0,
@@ -1237,7 +1306,6 @@ do_appwindow (void)
gtk_window_set_default_size (GTK_WINDOW (window),
200, 200);
- contents = gtk_text_view_new ();
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (contents),
PANGO_WRAP_WORD);
@@ -1247,68 +1315,11 @@ do_appwindow (void)
#if !GTK_CHECK_VERSION (3, 0, 0)
/* Create the toolbar
*/
- toolbar = gtk_toolbar_new ();
-
- GtkToolItem *newButton = gtk_tool_button_new_from_stock(GTK_STOCK_NEW);
- gtk_tool_item_set_tooltip_text(newButton,
- "Open another one of these windows");
- g_signal_connect(G_OBJECT(newButton),
- "clicked",
- G_CALLBACK(do_appwindow),
- window);
- gtk_toolbar_insert(GTK_TOOLBAR(toolbar),
- newButton,
- -1); /*-1 means append to end of toolbar*/
-
-
- GtkToolItem *lockButton = gtk_tool_button_new_from_stock(GTK_STOCK_OPEN);
- gtk_tool_item_set_tooltip_text(lockButton,
- "This is a demo button that locks up the demo");
- g_signal_connect(G_OBJECT(lockButton),
- "clicked",
- G_CALLBACK(sleep_cb),
- window);
- gtk_toolbar_insert(GTK_TOOLBAR(toolbar),
- lockButton,
- -1); /*-1 means append to end of toolbar*/
-
-
- GtkToolItem *decoButton = gtk_tool_button_new_from_stock(GTK_STOCK_OPEN);
- gtk_tool_item_set_tooltip_text(decoButton,
- "This is a demo button that toggles window decorations");
- g_signal_connect(G_OBJECT(decoButton),
- "clicked",
- G_CALLBACK(toggle_decorated_cb),
- window);
- gtk_toolbar_insert(GTK_TOOLBAR(toolbar),
- decoButton,
- -1); /*-1 means append to end of toolbar*/
-
- GtkToolItem *lockRatioButton = gtk_tool_button_new_from_stock(GTK_STOCK_OPEN);
- gtk_tool_item_set_tooltip_text(lockRatioButton,
- "This is a demo button that locks the aspect ratio using a hint");
- g_signal_connect(G_OBJECT(lockRatioButton),
- "clicked",
- G_CALLBACK(toggle_aspect_ratio),
- window);
- gtk_toolbar_insert(GTK_TOOLBAR(toolbar),
- lockRatioButton,
- -1); /*-1 means append to end of toolbar*/
-
- GtkToolItem *quitButton = gtk_tool_button_new_from_stock(GTK_STOCK_QUIT);
- gtk_tool_item_set_tooltip_text(quitButton,
- "This is a demo button with a 'quit' icon");
- g_signal_connect(G_OBJECT(quitButton),
- "clicked",
- G_CALLBACK(clicked_toolbar_cb),
- window);
- gtk_toolbar_insert(GTK_TOOLBAR(toolbar),
- quitButton,
- -1); /*-1 means append to end of toolbar*/
handlebox = gtk_handle_box_new ();
- gtk_container_add (GTK_CONTAINER (handlebox), toolbar);
+ gtk_container_add (GTK_CONTAINER (handlebox),
+ gtk_ui_manager_get_widget (ui_manager, "/ui/toolbar"));
gtk_table_attach (GTK_TABLE (table),
handlebox,
@@ -1362,6 +1373,7 @@ do_appwindow (void)
g_object_unref (action_group);
g_object_unref (builder);
#else
+ g_object_unref (ui_manager);
return window;
#endif
}
diff --git a/src/ui/draw-workspace.c b/src/ui/draw-workspace.c
index a40579db..4feb25c9 100644
--- a/src/ui/draw-workspace.c
+++ b/src/ui/draw-workspace.c
@@ -26,12 +26,7 @@
*/
#include "draw-workspace.h"
-
-#if GTK_CHECK_VERSION (3, 0, 0)
-#define MATE_DESKTOP_USE_UNSTABLE_API
-#include <libmate-desktop/mate-desktop-utils.h>
-#endif
-
+#include "theme.h"
static void
get_window_rect (const WnckWindowDisplayInfo *win,
@@ -110,7 +105,7 @@ draw_window (GtkWidget *widget,
#if GTK_CHECK_VERSION (3, 0, 0)
style = gtk_widget_get_style_context (widget);
if (is_active)
- mate_desktop_gtk_style_get_light_color (style, state, &color);
+ meta_gtk_style_get_light_color (style, state, &color);
else
gtk_style_context_get_background_color (style, state, &color);
gdk_cairo_set_source_rgba (cr, &color);
@@ -268,7 +263,7 @@ wnck_draw_workspace (GtkWidget *widget,
#if GTK_CHECK_VERSION (3, 0, 0)
GdkRGBA color;
- mate_desktop_gtk_style_get_dark_color (style,state, &color);
+ meta_gtk_style_get_dark_color (style,state, &color);
gdk_cairo_set_source_rgba (cr, &color);
#else
gdk_cairo_set_source_color (cr, &gtk_widget_get_style (widget)->dark[state]);
diff --git a/src/ui/fixedtip.c b/src/ui/fixedtip.c
index fc1be2af..7037eab3 100644
--- a/src/ui/fixedtip.c
+++ b/src/ui/fixedtip.c
@@ -72,7 +72,7 @@ draw_handler (GtkWidget *tooltips,
#else
static gint
-expose_handler (GtkTooltips *tooltips)
+expose_handler (GtkTooltip *tooltips)
{
gtk_paint_flat_box (gtk_widget_get_style (tip), gtk_widget_get_window (tip),
GTK_STATE_NORMAL, GTK_SHADOW_OUT,
diff --git a/src/ui/frames.c b/src/ui/frames.c
index 099c5052..99260936 100644
--- a/src/ui/frames.c
+++ b/src/ui/frames.c
@@ -161,6 +161,24 @@ meta_frames_get_type (void)
#endif
+static GObject *
+meta_frames_constructor (GType gtype,
+ guint n_properties,
+ GObjectConstructParam *properties)
+{
+ GObject *object;
+ GObjectClass *gobject_class;
+
+ gobject_class = G_OBJECT_CLASS (parent_class);
+ object = gobject_class->constructor (gtype, n_properties, properties);
+
+ g_object_set (object,
+ "type", GTK_WINDOW_POPUP,
+ NULL);
+
+ return object;
+}
+
static void
meta_frames_class_init (MetaFramesClass *class)
{
@@ -180,6 +198,7 @@ meta_frames_class_init (MetaFramesClass *class)
parent_class = g_type_class_peek_parent (class);
#endif
+ gobject_class->constructor = meta_frames_constructor;
gobject_class->finalize = meta_frames_finalize;
#if !GTK_CHECK_VERSION(3, 0, 0)
object_class->destroy = meta_frames_destroy;
@@ -245,10 +264,6 @@ prefs_changed_callback (MetaPreference pref,
static void
meta_frames_init (MetaFrames *frames)
{
- #if !GTK_CHECK_VERSION(3, 0, 0)
- GTK_WINDOW (frames)->type = GTK_WINDOW_POPUP;
- #endif
-
frames->text_heights = g_hash_table_new (NULL, NULL);
frames->frames = g_hash_table_new (unsigned_long_hash, unsigned_long_equal);
@@ -565,6 +580,8 @@ meta_frames_ensure_layout (MetaFrames *frames,
pango_layout_set_auto_dir (frame->layout, FALSE);
+ pango_layout_set_single_paragraph_mode (frame->layout, TRUE);
+
font_desc = meta_gtk_widget_get_font_desc (widget, scale,
meta_prefs_get_titlebar_font ());
@@ -662,8 +679,9 @@ meta_frames_attach_style (MetaFrames *frames,
frame->style = g_object_ref (gtk_widget_get_style_context (GTK_WIDGET (frames)));
#else
/* Weirdly, gtk_style_attach() steals a reference count from the style passed in */
- g_object_ref (GTK_WIDGET (frames)->style);
- frame->style = gtk_style_attach (GTK_WIDGET (frames)->style, frame->window);
+ g_object_ref (gtk_widget_get_style (GTK_WIDGET (frames)));
+ frame->style = gtk_style_attach (gtk_widget_get_style (GTK_WIDGET (frames)),
+ frame->window);
#endif
}
@@ -2324,7 +2342,7 @@ clip_to_screen (GdkRegion *region, MetaUIFrame *frame)
META_CORE_GET_FRAME_Y, &frame_area.y,
META_CORE_GET_FRAME_WIDTH, &frame_area.width,
META_CORE_GET_FRAME_HEIGHT, &frame_area.height,
- META_CORE_GET_SCREEN_WIDTH, &screen_area.height,
+ META_CORE_GET_SCREEN_WIDTH, &screen_area.width,
META_CORE_GET_SCREEN_HEIGHT, &screen_area.height,
META_CORE_GET_END);
diff --git a/src/ui/menu.c b/src/ui/menu.c
index 1dfc7140..407ef986 100644
--- a/src/ui/menu.c
+++ b/src/ui/menu.c
@@ -381,6 +381,7 @@ meta_window_menu_new (MetaFrames *frames,
Display *display;
Window xroot;
GdkScreen *screen;
+ GdkWindow *window;
GtkWidget *submenu;
int j;
@@ -393,7 +394,7 @@ meta_window_menu_new (MetaFrames *frames,
meta_verbose ("Creating %d-workspace menu current space %lu\n",
n_workspaces, active_workspace);
- GdkWindow* window = gtk_widget_get_window (GTK_WIDGET (frames));
+ window = gtk_widget_get_window (GTK_WIDGET (frames));
display = GDK_WINDOW_XDISPLAY (window);
@@ -440,20 +441,11 @@ meta_window_menu_new (MetaFrames *frames,
"workspace",
GINT_TO_POINTER (j));
- #if GTK_CHECK_VERSION(3, 0, 0)
g_signal_connect_data (G_OBJECT (submi),
"activate",
G_CALLBACK (activate_cb),
md,
(GClosureNotify) g_free, 0);
- #else
- gtk_signal_connect_full (GTK_OBJECT (submi),
- "activate",
- G_CALLBACK (activate_cb),
- NULL,
- md,
- g_free, FALSE, FALSE);
- #endif
gtk_menu_shell_append (GTK_MENU_SHELL (submenu), submi);
@@ -476,20 +468,11 @@ meta_window_menu_new (MetaFrames *frames,
md->menu = menu;
md->op = menuitem.op;
- #if GTK_CHECK_VERSION(3, 0, 0)
g_signal_connect_data (G_OBJECT (mi),
"activate",
G_CALLBACK (activate_cb),
md,
(GClosureNotify) g_free, 0);
- #else
- gtk_signal_connect_full (GTK_OBJECT (mi),
- "activate",
- G_CALLBACK (activate_cb),
- NULL,
- md,
- g_free, FALSE, FALSE);
- #endif
}
if (mi)
@@ -518,14 +501,8 @@ void meta_window_menu_popup(MetaWindowMenu* menu, int root_x, int root_y, int bu
gtk_menu_popup(GTK_MENU (menu->menu), NULL, NULL, popup_position_func, pt, button, timestamp);
- #if GTK_CHECK_VERSION(3, 0, 0)
if (!gtk_widget_get_visible (menu->menu))
- #else
- if (!GTK_MENU_SHELL(menu->menu)->have_xgrab)
- #endif
- {
- meta_warning("GtkMenu failed to grab the pointer\n");
- }
+ meta_warning("GtkMenu failed to grab the pointer\n");
}
void meta_window_menu_free(MetaWindowMenu* menu)
diff --git a/src/ui/metaaccellabel.c b/src/ui/metaaccellabel.c
index 3ef870bc..da040ee8 100644
--- a/src/ui/metaaccellabel.c
+++ b/src/ui/metaaccellabel.c
@@ -423,52 +423,61 @@ meta_accel_label_expose_event (GtkWidget *widget,
GtkMisc *misc = GTK_MISC (accel_label);
PangoLayout *layout;
- if (GTK_WIDGET_DRAWABLE (accel_label))
+ if (gtk_widget_is_drawable (GTK_WIDGET (accel_label)))
{
int ac_width;
+ GtkAllocation allocation;
+ GtkRequisition requisition;
+ gtk_widget_get_allocation (widget, &allocation);
+ gtk_widget_get_requisition (widget, &requisition);
ac_width = meta_accel_label_get_accel_width (accel_label);
- if (widget->allocation.width >= widget->requisition.width + ac_width)
+ if (allocation.width >= requisition.width + ac_width)
{
GtkTextDirection direction = gtk_widget_get_direction (widget);
- gint x;
- gint y;
+ gfloat xalign, yalign;
+ gint x, y;
+ gint xpad, ypad;
+
+ gtk_misc_get_padding (misc, &xpad, &ypad);
+ gtk_misc_get_alignment (misc, &xalign, &yalign);
if (direction == GTK_TEXT_DIR_RTL)
{
- widget->allocation.x += ac_width;
+ allocation.x += ac_width;
}
- widget->allocation.width -= ac_width;
+ allocation.width -= ac_width;
+ gtk_widget_set_allocation (widget, &allocation);
if (GTK_WIDGET_CLASS (parent_class)->expose_event)
GTK_WIDGET_CLASS (parent_class)->expose_event (widget, event);
if (direction == GTK_TEXT_DIR_RTL)
{
- widget->allocation.x -= ac_width;
+ allocation.x -= ac_width;
}
- widget->allocation.width += ac_width;
+ allocation.width += ac_width;
+ gtk_widget_set_allocation (widget, &allocation);
if (direction == GTK_TEXT_DIR_RTL)
{
- x = widget->allocation.x + misc->xpad;
+ x = allocation.x + allocation.width - xpad - ac_width;
}
else
{
- x = widget->allocation.x + widget->allocation.width - misc->xpad - ac_width;
+ x = allocation.x + allocation.width - xpad - ac_width;
}
- y = (widget->allocation.y * (1.0 - misc->yalign) +
- (widget->allocation.y + widget->allocation.height -
- (widget->requisition.height - misc->ypad * 2)) *
- misc->yalign) + 1.5;
+ y = (allocation.y * (1.0 - yalign) +
+ (allocation.y + allocation.height -
+ (requisition.height - ypad * 2)) * yalign) + 1.5;
layout = gtk_widget_create_pango_layout (widget, accel_label->accel_string);
- gtk_paint_layout (widget->style,
- widget->window,
- GTK_WIDGET_STATE (widget),
+ gtk_paint_layout (gtk_widget_get_style (widget),
+ gtk_widget_get_window (widget),
+ gtk_widget_get_state (widget),
FALSE,
&event->area,
widget,
diff --git a/src/ui/preview-widget.c b/src/ui/preview-widget.c
index 58122706..9138c6f5 100644
--- a/src/ui/preview-widget.c
+++ b/src/ui/preview-widget.c
@@ -103,19 +103,17 @@ meta_preview_class_init (MetaPreviewClass *class)
gobject_class->finalize = meta_preview_finalize;
- #if GTK_CHECK_VERSION(3, 0, 0)
+#if GTK_CHECK_VERSION(3, 0, 0)
widget_class->draw = meta_preview_draw;
widget_class->get_preferred_width = meta_preview_get_preferred_width;
widget_class->get_preferred_height = meta_preview_get_preferred_height;
- #else
- widget_class->expose_event = meta_preview_expose;
- widget_class->size_request = meta_preview_size_request;
- #endif
- widget_class->size_allocate = meta_preview_size_allocate;
-#if GTK_CHECK_VERSION(3, 0, 0)
gtk_container_class_handle_border_width (GTK_CONTAINER_CLASS (class));
+#else
+ widget_class->expose_event = meta_preview_expose;
+ widget_class->size_request = meta_preview_size_request;
#endif
+ widget_class->size_allocate = meta_preview_size_allocate;
}
static void
@@ -162,11 +160,7 @@ meta_preview_new (void)
{
MetaPreview *preview;
- #if GTK_CHECK_VERSION(3, 0, 0)
preview = g_object_new (META_TYPE_PREVIEW, NULL);
- #else
- preview = gtk_type_new (META_TYPE_PREVIEW);
- #endif
return GTK_WIDGET (preview);
}
@@ -447,9 +441,6 @@ meta_preview_expose (GtkWidget *widget,
return GTK_WIDGET_CLASS (parent_class)->expose_event (widget, event);
}
-#endif
-
-#if !GTK_CHECK_VERSION (3, 0, 0)
static void
meta_preview_size_request (GtkWidget *widget,
GtkRequisition *req)
@@ -620,7 +611,7 @@ meta_preview_get_icon (void)
NULL);
else
default_icon = gtk_icon_theme_load_icon (theme,
- "gtk-missing-image",
+ "image-missing",
META_ICON_WIDTH,
0,
NULL);
@@ -653,7 +644,7 @@ meta_preview_get_mini_icon (void)
NULL);
else
default_icon = gtk_icon_theme_load_icon (theme,
- "gtk-missing-image",
+ "image-missing",
META_MINI_ICON_WIDTH,
0,
NULL);
diff --git a/src/ui/tabpopup.c b/src/ui/tabpopup.c
index dfbdf1a4..12fb4250 100644
--- a/src/ui/tabpopup.c
+++ b/src/ui/tabpopup.c
@@ -535,16 +535,16 @@ display_entry (MetaTabPopup *popup,
if (popup->outline)
{
+ window = gtk_widget_get_window (popup->outline_window);
+
/* Do stuff behind gtk's back */
- gdk_window_hide (gtk_widget_get_window(popup->outline_window));
+ gdk_window_hide (window);
meta_core_increment_event_serial (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
rect = te->rect;
rect.x = 0;
rect.y = 0;
- window = gtk_widget_get_window(GTK_WIDGET(popup->outline_window));
-
gdk_window_move_resize (window,
te->rect.x, te->rect.y,
te->rect.width, te->rect.height);
@@ -554,7 +554,7 @@ display_entry (MetaTabPopup *popup,
gdk_window_set_background_rgba (window, &black);
#else
gdk_window_set_background (window,
- &popup->outline_window->style->black);
+ &gtk_widget_get_style (popup->outline_window)->black);
#endif
region = gdk_region_rectangle (&rect);
@@ -828,35 +828,41 @@ meta_select_image_expose_event (GtkWidget *widget,
{
if (META_SELECT_IMAGE (widget)->selected)
{
- int x, y, w, h;
+ GtkAllocation allocation;
+ GtkRequisition requisition;
GtkMisc *misc;
GtkStyle *style;
GtkStateType state;
+ GdkWindow *window;
+ int x, y, w, h;
+ int xpad, ypad;
+ float xalign, yalign;
cairo_t *cr;
- GtkAllocation allocation;
-
- gtk_widget_get_allocation(widget, &allocation);
misc = GTK_MISC (widget);
- x = (allocation.x * (1.0 - misc->xalign) +
+ gtk_widget_get_allocation(widget, &allocation);
+ gtk_widget_get_requisition (widget, &requisition);
+ gtk_misc_get_padding (misc, &xpad, &ypad);
+ gtk_misc_get_alignment (misc, &xalign, &yalign);
+
+ x = (allocation.x * (1.0 - xalign) +
(allocation.x + allocation.width
- - (widget->requisition.width - misc->xpad * 2)) *
- misc->xalign) + 0.5;
- y = (allocation.y * (1.0 - misc->yalign) +
+ - (requisition.width - xpad * 2)) * xalign) + 0.5;
+ y = (allocation.y * (1.0 - yalign) +
(allocation.y + allocation.height
- - (widget->requisition.height - misc->ypad * 2)) *
- misc->yalign) + 0.5;
+ - (requisition.height - ypad * 2)) * yalign) + 0.5;
x -= INSIDE_SELECT_RECT + 1;
y -= INSIDE_SELECT_RECT + 1;
- w = widget->requisition.width - OUTSIDE_SELECT_RECT * 2 - 1;
- h = widget->requisition.height - OUTSIDE_SELECT_RECT * 2 - 1;
+ w = requisition.width - OUTSIDE_SELECT_RECT * 2 - 1;
+ h = requisition.height - OUTSIDE_SELECT_RECT * 2 - 1;
+ window = gtk_widget_get_window (widget);
style = gtk_widget_get_style (widget);
state = gtk_widget_get_state (widget);
- cr = gdk_cairo_create (gtk_widget_get_window(widget));
+ cr = gdk_cairo_create (window);
cairo_set_line_width (cr, 2.0);
gdk_cairo_set_source_color (cr, &style->fg[state]);
@@ -1127,13 +1133,12 @@ meta_select_workspace_expose_event (GtkWidget *widget,
{
MetaWorkspace *workspace;
WnckWindowDisplayInfo *windows;
+ GtkAllocation allocation;
GtkStyle *style;
+ GdkWindow *window;
cairo_t *cr;
int i, n_windows;
GList *tmp, *list;
- GtkAllocation allocation;
-
- gtk_widget_get_allocation(widget, &allocation);
workspace = META_SELECT_WORKSPACE (widget)->workspace;
@@ -1170,8 +1175,11 @@ meta_select_workspace_expose_event (GtkWidget *widget,
g_list_free (list);
+ window = gtk_widget_get_window (widget);
+ gtk_widget_get_allocation (widget, &allocation);
+
wnck_draw_workspace (widget,
- gtk_widget_get_window(widget),
+ window,
SELECT_OUTLINE_WIDTH,
SELECT_OUTLINE_WIDTH,
allocation.width - SELECT_OUTLINE_WIDTH * 2,
@@ -1188,7 +1196,7 @@ meta_select_workspace_expose_event (GtkWidget *widget,
if (META_SELECT_WORKSPACE (widget)->selected)
{
style = gtk_widget_get_style (widget);
- cr = gdk_cairo_create (gtk_widget_get_window(widget));
+ cr = gdk_cairo_create (window);
gdk_cairo_set_source_color (cr,
&style->fg[gtk_widget_get_state (widget)]);
diff --git a/src/ui/theme-viewer.c b/src/ui/theme-viewer.c
index 0a5e4eb2..a9ef8103 100644
--- a/src/ui/theme-viewer.c
+++ b/src/ui/theme-viewer.c
@@ -76,92 +76,99 @@ static void run_position_expression_timings (void);
static void run_theme_benchmark (void);
-static GtkItemFactoryEntry menu_items[] =
+static const gchar *menu_item_string =
+ "<ui>\n"
+ "<menubar>\n"
+ "<menu name='Windows' action='Windows'>\n"
+ "<menuitem name='Dialog' action='Dialog'/>\n"
+ "<menuitem name='Modal dialog' action='Modal dialog'/>\n"
+ "<menuitem name='Utility' action='Utility'/>\n"
+ "<menuitem name='Splashscreen' action='Splashscreen'/>\n"
+ "<menuitem name='Top dock' action='Top dock'/>\n"
+ "<menuitem name='Bottom dock' action='Bottom dock'/>\n"
+ "<menuitem name='Left dock' action='Left dock'/>\n"
+ "<menuitem name='Right dock' action='Right dock'/>\n"
+ "<menuitem name='Desktop' action='Desktop'/>\n"
+ "</menu>\n"
+ "</menubar>\n"
+ "<toolbar>\n"
+ "<separator/>\n"
+ "<toolitem name='New' action='New'/>\n"
+ "<toolitem name='Open' action='Open'/>\n"
+ "<toolitem name='Quit' action='Quit'/>\n"
+ "<separator/>\n"
+ "</toolbar>\n"
+ "</ui>\n";
+
+static GtkActionEntry menu_items[] =
{
- { N_("/_Windows"), NULL, NULL, 0, "<Branch>" },
- { N_("/Windows/tearoff"), NULL, NULL, 0, "<Tearoff>" },
- { N_("/Windows/_Dialog"), "<control>d", NULL, 0, NULL },
- { N_("/Windows/_Modal dialog"), NULL, NULL, 0, NULL },
- { N_("/Windows/_Utility"), "<control>u", NULL, 0, NULL },
- { N_("/Windows/_Splashscreen"), "<control>s", NULL, 0, NULL },
- { N_("/Windows/_Top dock"), NULL, NULL, 0, NULL },
- { N_("/Windows/_Bottom dock"), NULL, NULL, 0, NULL },
- { N_("/Windows/_Left dock"), NULL, NULL, 0, NULL },
- { N_("/Windows/_Right dock"), NULL, NULL, 0, NULL },
- { N_("/Windows/_All docks"), NULL, NULL, 0, NULL },
- { N_("/Windows/Des_ktop"), NULL, NULL, 0, NULL }
+ { "Windows", NULL, N_("_Windows"), NULL, NULL, NULL },
+ { "Dialog", NULL, N_("_Dialog"), "<control>d", NULL, NULL },
+ { "Modal dialog", NULL, N_("_Modal dialog"), NULL, NULL, NULL },
+ { "Utility", NULL, N_("_Utility"), "<control>u", NULL, NULL },
+ { "Splashscreen", NULL, N_("_Splashscreen"), "<control>s", NULL, NULL },
+ { "Top dock", NULL, N_("_Top dock"), NULL, NULL, NULL },
+ { "Bottom dock", NULL, N_("_Bottom dock"), NULL, NULL, NULL },
+ { "Left dock", NULL, N_("_Left dock"), NULL, NULL, NULL },
+ { "Right dock", NULL, N_("_Right dock"), NULL, NULL, NULL },
+ { "All docks", NULL, N_("_All docks"), NULL, NULL, NULL },
+ { "Desktop", NULL, N_("Des_ktop"), NULL, NULL, NULL }
+};
+
+static GtkActionEntry tool_items[] =
+{
+ { "New", GTK_STOCK_NEW, NULL, NULL,
+ N_("Open another one of these windows"), NULL },
+ { "Open", GTK_STOCK_OPEN, NULL, NULL,
+ N_("This is a demo button with an 'open' icon"), NULL },
+ { "Quit", GTK_STOCK_QUIT, NULL, NULL,
+ N_("This is a demo button with a 'quit' icon"), NULL }
};
static GtkWidget *
normal_contents (void)
{
GtkWidget *table;
- GtkWidget *toolbar;
GtkWidget *handlebox;
GtkWidget *statusbar;
GtkWidget *contents;
GtkWidget *sw;
- GtkItemFactory *item_factory;
+ GtkActionGroup *action_group;
+ GtkUIManager *ui_manager;
table = gtk_table_new (1, 4, FALSE);
/* Create the menubar
*/
- item_factory = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>", NULL);
+ action_group = gtk_action_group_new ("mainmenu");
+ gtk_action_group_add_actions (action_group,
+ menu_items,
+ G_N_ELEMENTS (menu_items),
+ NULL);
+ gtk_action_group_add_actions (action_group,
+ tool_items,
+ G_N_ELEMENTS (tool_items),
+ NULL);
- gtk_item_factory_set_translate_func(item_factory,
- (GtkTranslateFunc)gettext, NULL, NULL);
+ ui_manager = gtk_ui_manager_new ();
- /* Set up item factory to go away */
- g_object_ref (item_factory);
- g_object_ref_sink (item_factory);
- g_object_unref (item_factory);
- g_object_set_data_full (G_OBJECT (table),
- "<main>",
- item_factory,
- (GDestroyNotify) g_object_unref);
+ gtk_ui_manager_insert_action_group (ui_manager, action_group, 0);
/* create menu items */
- gtk_item_factory_create_items (item_factory, G_N_ELEMENTS (menu_items),
- menu_items, NULL);
+ gtk_ui_manager_add_ui_from_string (ui_manager, menu_item_string, -1, NULL);
gtk_table_attach (GTK_TABLE (table),
- gtk_item_factory_get_widget (item_factory, "<main>"),
+ gtk_ui_manager_get_widget (ui_manager, "/ui/menubar"),
/* X direction */ /* Y direction */
0, 1, 0, 1,
GTK_EXPAND | GTK_FILL, 0,
0, 0);
- /* Create the toolbar
- */
- toolbar = gtk_toolbar_new ();
-
- GtkToolItem *newButton = gtk_tool_button_new_from_stock(GTK_STOCK_NEW);
- gtk_tool_item_set_tooltip_text(newButton,
- "Open another one of these windows");
- gtk_toolbar_insert(GTK_TOOLBAR(toolbar),
- newButton,
- -1); /*-1 means append to end of toolbar*/
-
- GtkToolItem *openButton = gtk_tool_button_new_from_stock(GTK_STOCK_OPEN);
- gtk_tool_item_set_tooltip_text(openButton,
- "This is a demo button with an \'open\' icon");
- gtk_toolbar_insert(GTK_TOOLBAR(toolbar),
- openButton,
- -1); /*-1 means append to end of toolbar*/
-
- GtkToolItem *quitButton = gtk_tool_button_new_from_stock(GTK_STOCK_QUIT);
- gtk_tool_item_set_tooltip_text(quitButton,
- "This is a demo button with a \'quit\' icon");
- gtk_toolbar_insert(GTK_TOOLBAR(toolbar),
- quitButton,
- -1); /*-1 means append to end of toolbar*/
-
-
handlebox = gtk_handle_box_new ();
- gtk_container_add (GTK_CONTAINER (handlebox), toolbar);
+ gtk_container_add (GTK_CONTAINER (handlebox),
+ gtk_ui_manager_get_widget (ui_manager, "/ui/toolbar"));
gtk_table_attach (GTK_TABLE (table),
handlebox,
@@ -208,6 +215,8 @@ normal_contents (void)
gtk_widget_show_all (table);
+ g_object_unref (ui_manager);
+
return table;
}
@@ -778,6 +787,7 @@ main (int argc, char **argv)
{
GtkWidget *window;
GtkWidget *collection;
+ GtkStyle *style;
GError *err;
clock_t start, end;
GtkWidget *notebook;
@@ -852,26 +862,28 @@ main (int argc, char **argv)
G_CALLBACK (gtk_main_quit), NULL);
gtk_widget_realize (window);
- g_assert (window->style);
- g_assert (window->style->font_desc);
+ style = gtk_widget_get_style (window);
+
+ g_assert (style);
+ g_assert (style->font_desc);
notebook = gtk_notebook_new ();
gtk_container_add (GTK_CONTAINER (window), notebook);
collection = preview_collection (FONT_SIZE_NORMAL,
- window->style->font_desc);
+ style->font_desc);
gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
collection,
gtk_label_new (_("Normal Title Font")));
collection = preview_collection (FONT_SIZE_SMALL,
- window->style->font_desc);
+ style->font_desc);
gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
collection,
gtk_label_new (_("Small Title Font")));
collection = preview_collection (FONT_SIZE_LARGE,
- window->style->font_desc);
+ style->font_desc);
gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
collection,
gtk_label_new (_("Large Title Font")));
@@ -922,7 +934,7 @@ get_flags (GtkWidget *widget)
static int
get_text_height (GtkWidget *widget)
{
- return meta_pango_font_desc_get_text_height (widget->style->font_desc,
+ return meta_pango_font_desc_get_text_height (gtk_widget_get_style (widget)->font_desc,
gtk_widget_get_pango_context (widget));
}
@@ -1003,7 +1015,7 @@ run_theme_benchmark (void)
/* Creating the pixmap in the loop is right, since
* GDK does the same with its double buffering.
*/
- pixmap = gdk_pixmap_new (widget->window,
+ pixmap = gdk_pixmap_new (gtk_widget_get_window (widget),
client_width + left_width + right_width,
client_height + top_height + bottom_height,
-1);
diff --git a/src/ui/theme.c b/src/ui/theme.c
index a7dc8d08..c9f2ab47 100644
--- a/src/ui/theme.c
+++ b/src/ui/theme.c
@@ -64,11 +64,6 @@
#include <math.h>
#if GTK_CHECK_VERSION (3, 0, 0)
-#define MATE_DESKTOP_USE_UNSTABLE_API
-#include <libmate-desktop/mate-desktop-utils.h>
-#endif
-
-#if GTK_CHECK_VERSION (3, 0, 0)
#define GDK_COLOR_RGBA(color) \
((guint32) (0xff | \
((int)((color).red * 255) << 24) | \
@@ -1312,7 +1307,6 @@ meta_color_spec_new_from_string (const char *str,
spec = meta_color_spec_new (META_COLOR_SPEC_GTK);
spec->data.gtk.state = state;
spec->data.gtk.component = component;
- g_assert (spec->data.gtk.state < N_GTK_STATES);
g_assert (spec->data.gtk.component < META_GTK_COLOR_LAST);
}
else if (str[0] == 'b' && str[1] == 'l' && str[2] == 'e' && str[3] == 'n' &&
@@ -1488,6 +1482,72 @@ meta_color_spec_new_gtk (MetaGtkColorComponent component,
#if GTK_CHECK_VERSION (3, 0, 0)
static void
+get_background_color_real (GtkStyleContext *context,
+ GtkStateFlags state,
+ GdkRGBA *color)
+{
+ GdkRGBA *c;
+
+ g_return_if_fail (color != NULL);
+ g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
+
+ gtk_style_context_get (context,
+ state,
+ "background-color", &c,
+ NULL);
+
+ *color = *c;
+ gdk_rgba_free (c);
+}
+
+static void
+get_background_color (GtkStyleContext *context,
+ GtkStateFlags state,
+ GdkRGBA *color)
+{
+ GdkRGBA empty = { 0.0, 0.0, 0.0, 0.0 };
+ GdkRGBA rgba;
+
+ get_background_color_real (context, state, &rgba);
+
+ if (gdk_rgba_equal (&rgba, &empty))
+ {
+ GtkWidget *toplevel;
+ GtkStyleContext *tmp;
+
+ toplevel = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ tmp = gtk_widget_get_style_context (toplevel);
+
+ get_background_color_real (tmp, state, &rgba);
+
+ gtk_widget_destroy (toplevel);
+ }
+
+ *color = rgba;
+}
+
+/* Based on set_color() in gtkstyle.c */
+#define LIGHTNESS_MULT 1.3
+#define DARKNESS_MULT 0.7
+void
+meta_gtk_style_get_light_color (GtkStyleContext *style,
+ GtkStateFlags state,
+ GdkRGBA *color)
+{
+ get_background_color (style, state, color);
+ gtk_style_shade (color, color, LIGHTNESS_MULT);
+}
+
+void
+meta_gtk_style_get_dark_color (GtkStyleContext *style,
+ GtkStateFlags state,
+ GdkRGBA *color)
+{
+ get_background_color (style, state, color);
+ gtk_style_shade (color, color, DARKNESS_MULT);
+}
+
+static void
meta_set_color_from_style (GdkRGBA *color,
GtkStyleContext *context,
GtkStateFlags state,
@@ -1499,7 +1559,7 @@ meta_set_color_from_style (GdkRGBA *color,
{
case META_GTK_COLOR_BG:
case META_GTK_COLOR_BASE:
- gtk_style_context_get_background_color (context, state, color);
+ get_background_color (context, state, color);
break;
case META_GTK_COLOR_FG:
case META_GTK_COLOR_TEXT:
@@ -1514,18 +1574,18 @@ meta_set_color_from_style (GdkRGBA *color,
color->blue = (color->blue + other.blue) / 2;
break;
case META_GTK_COLOR_MID:
- mate_desktop_gtk_style_get_light_color (context, state, color);
- mate_desktop_gtk_style_get_dark_color (context, state, &other);
+ meta_gtk_style_get_light_color (context, state, color);
+ meta_gtk_style_get_dark_color (context, state, &other);
color->red = (color->red + other.red) / 2;
color->green = (color->green + other.green) / 2;
color->blue = (color->blue + other.blue) / 2;
break;
case META_GTK_COLOR_LIGHT:
- mate_desktop_gtk_style_get_light_color (context, state, color);
+ meta_gtk_style_get_light_color (context, state, color);
break;
case META_GTK_COLOR_DARK:
- mate_desktop_gtk_style_get_dark_color (context, state, color);
+ meta_gtk_style_get_dark_color (context, state, color);
break;
case META_GTK_COLOR_LAST:
g_assert_not_reached ();
@@ -3698,44 +3758,31 @@ meta_draw_op_draw_with_env (const MetaDrawOp *op,
y2 = y1;
/* This is one of the cases where we are matching the exact
- * pixel aligned rectangle produced by X.
+ * pixel aligned rectangle produced by X; for zero-width lines
+ * the generic algorithm produces the right result so we don't
+ * need to handle them here.
*/
- if (y1 == y2 || x1 == x2)
+ if ((y1 == y2 || x1 == x2) && op->data.line.width != 0)
{
- double offset = (op->data.line.width == 0 ||
- op->data.line.width % 2) ? .5 : 0;
- /* X includes end points for lines of width 0 */
- double line_extend = op->data.line.width == 0 ? 1. : 0.;
+ double offset = op->data.line.width % 2 ? .5 : 0;
if (y1 == y2)
{
- if (x2 < x1)
- {
- x1 ^= x2;
- x2 ^= x1;
- x1 ^= x2;
- }
cairo_move_to (cr, x1, y1 + offset);
- cairo_line_to (cr, x2 + line_extend, y2 + offset);
+ cairo_line_to (cr, x2, y2 + offset);
}
else
{
- if (y2 < y1)
- {
- y1 ^= y2;
- y2 ^= y1;
- y1 ^= y2;
- }
cairo_move_to (cr, x1 + offset, y1);
- cairo_line_to (cr, x2 + offset, y2 + line_extend);
+ cairo_line_to (cr, x2 + offset, y2);
}
}
else
{
- if (op->data.line.width <= 0)
- {
- cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE);
- }
+ /* zero-width lines include both end-points in X, unlike wide lines */
+ if (op->data.line.width == 0)
+ cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE);
+
cairo_move_to (cr, x1 + .5, y1 + .5);
cairo_line_to (cr, x2 + .5, y2 + .5);
}
@@ -4745,10 +4792,10 @@ meta_frame_style_validate (MetaFrameStyle *style,
}
static void
-button_rect (MetaButtonType type,
- const MetaFrameGeometry *fgeom,
- int middle_background_offset,
- GdkRectangle *rect)
+get_button_rect (MetaButtonType type,
+ const MetaFrameGeometry *fgeom,
+ int middle_background_offset,
+ GdkRectangle *rect)
{
switch (type)
{
@@ -5068,7 +5115,7 @@ meta_frame_style_draw_with_style (MetaFrameStyle *style,
{
MetaButtonState button_state;
- button_rect (j, fgeom, middle_bg_offset, &rect);
+ get_button_rect (j, fgeom, middle_bg_offset, &rect);
button_state = map_button_state (j, fgeom, middle_bg_offset, button_states);
op_list = get_button (style, j, button_state);
@@ -5123,7 +5170,7 @@ meta_frame_style_draw_with_style (MetaFrameStyle *style,
{
MetaButtonState button_state;
- button_rect (j, fgeom, middle_bg_offset, &rect);
+ get_button_rect (j, fgeom, middle_bg_offset, &rect);
rect.x += x_offset;
rect.y += y_offset;
diff --git a/src/ui/theme.h b/src/ui/theme.h
index 66996d89..ea3ec196 100644
--- a/src/ui/theme.h
+++ b/src/ui/theme.h
@@ -694,8 +694,6 @@ typedef enum
META_FRAME_PIECE_LAST
} MetaFramePiece;
-#define N_GTK_STATES 5
-
/**
* How to draw a frame in a particular state (say, a focussed, non-maximised,
* resizable frame). This corresponds closely to the <frame_style> tag
@@ -1271,6 +1269,14 @@ GtkArrowType meta_gtk_arrow_from_string (const char *s
const char* meta_gtk_arrow_to_string (GtkArrowType arrow);
MetaImageFillType meta_image_fill_type_from_string (const char *str);
const char* meta_image_fill_type_to_string (MetaImageFillType fill_type);
+#if GTK_CHECK_VERSION (3, 0, 0)
+void meta_gtk_style_get_light_color (GtkStyleContext *style,
+ GtkStateFlags state,
+ GdkRGBA *color);
+void meta_gtk_style_get_dark_color (GtkStyleContext *style,
+ GtkStateFlags state,
+ GdkRGBA *color);
+#endif
guint meta_theme_earliest_version_with_button (MetaButtonType type);
diff --git a/src/ui/tile-preview.c b/src/ui/tile-preview.c
index ee58600d..e14ffe25 100644
--- a/src/ui/tile-preview.c
+++ b/src/ui/tile-preview.c
@@ -62,24 +62,16 @@ meta_tile_preview_expose (GtkWidget *widget,
{
MetaTilePreview *preview = user_data;
#if !GTK_CHECK_VERSION (3, 0, 0)
- GdkWindow *window;
- cairo_t *cr;
-
- window = gtk_widget_get_window (widget);
- cr = gdk_cairo_create (window);
+ cairo_t *cr = gdk_cairo_create (event->window);
#endif
cairo_set_line_width (cr, 1.0);
if (preview->has_alpha)
{
-#if GTK_CHECK_VERSION (3, 0, 0)
- GdkRGBA preview_color = *preview->preview_color;
-#endif
-
/* Fill the preview area with a transparent color */
#if GTK_CHECK_VERSION (3, 0, 0)
- gdk_cairo_set_source_rgba (cr, &preview_color);
+ gdk_cairo_set_source_rgba (cr, preview->preview_color);
#else
cairo_set_source_rgba (cr,
(double)preview->preview_color->red / 0xFFFF,
@@ -93,7 +85,7 @@ meta_tile_preview_expose (GtkWidget *widget,
/* Use the opaque color for the border */
#if GTK_CHECK_VERSION (3, 0, 0)
- gdk_cairo_set_source_rgba (cr, &preview_color);
+ gdk_cairo_set_source_rgba (cr, preview->preview_color);
#else
gdk_cairo_set_source_color (cr, preview->preview_color);
#endif
@@ -121,6 +113,13 @@ meta_tile_preview_expose (GtkWidget *widget,
0.5, 0.5,
preview->tile_rect.width - 1,
preview->tile_rect.height - 1);
+
+#if GTK_CHECK_VERSION (3, 0, 0)
+ if (preview->has_alpha) {
+ cairo_fill_preserve (cr);
+ cairo_set_source_rgba (cr, preview->preview_color->red, preview->preview_color->green, preview->preview_color->blue, 1.0);
+ }
+#endif
cairo_stroke (cr);
#if !GTK_CHECK_VERSION (3, 0, 0)
@@ -264,13 +263,8 @@ meta_tile_preview_show (MetaTilePreview *preview,
&& preview->tile_rect.height == tile_rect->height)
return; /* nothing to do */
- gtk_widget_show (preview->preview_window);
window = gtk_widget_get_window (preview->preview_window);
-#if GTK_CHECK_VERSION (3, 0, 0)
meta_core_lower_beneath_focus_window (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
-#else
- meta_core_lower_beneath_focus_window (gdk_display,
-#endif
GDK_WINDOW_XID (window),
gtk_get_current_event_time ());
@@ -280,6 +274,8 @@ meta_tile_preview_show (MetaTilePreview *preview,
gdk_window_invalidate_rect (window, &old_rect, FALSE);
+ gtk_widget_show (preview->preview_window);
+
preview->tile_rect = *tile_rect;
gdk_window_move_resize (window,
diff --git a/src/ui/ui.c b/src/ui/ui.c
index bbef9395..76ef72fa 100644
--- a/src/ui/ui.c
+++ b/src/ui/ui.c
@@ -58,7 +58,7 @@ void meta_ui_init(int* argc, char*** argv)
* GDK will no longer generate the core XEvents we process.
* So at least for now, enforce the previous behavior.
*/
-#if GTK_CHECK_VERSION(2, 91, 7)
+#if GTK_CHECK_VERSION(3, 0, 0)
gdk_disable_multidevice ();
#endif
@@ -125,11 +125,7 @@ maybe_redirect_mouse_event (XEvent *xevent)
if (!ui)
return FALSE;
-#if GTK_CHECK_VERSION (3, 0, 0)
gdk_window = gdk_x11_window_lookup_for_display (gdisplay, window);
-#else
- gdk_window = gdk_window_lookup_for_display (gdisplay, window);
-#endif
if (gdk_window == NULL)
return FALSE;
@@ -584,109 +580,6 @@ meta_ui_window_menu_free (MetaWindowMenu *menu)
}
#if !GTK_CHECK_VERSION (3, 0, 0)
-struct _MetaImageWindow
-{
- GtkWidget *window;
- GdkPixmap *pixmap;
-};
-
-MetaImageWindow*
-meta_image_window_new (Display *xdisplay,
- int screen_number,
- int max_width,
- int max_height)
-{
- MetaImageWindow *iw;
- GdkDisplay *gdisplay;
- GdkScreen *gscreen;
-
- iw = g_new (MetaImageWindow, 1);
- iw->window = gtk_window_new (GTK_WINDOW_POPUP);
-
- gdisplay = gdk_x11_lookup_xdisplay (xdisplay);
- gscreen = gdk_display_get_screen (gdisplay, screen_number);
-
- gtk_window_set_screen (GTK_WINDOW (iw->window), gscreen);
-
- gtk_widget_realize (iw->window);
- iw->pixmap = gdk_pixmap_new (gtk_widget_get_window (iw->window),
- max_width, max_height,
- -1);
-
- gtk_widget_set_size_request (iw->window, 1, 1);
- gtk_widget_set_double_buffered (iw->window, FALSE);
- gtk_widget_set_app_paintable (iw->window, TRUE);
-
- return iw;
-}
-
-void
-meta_image_window_free (MetaImageWindow *iw)
-{
- gtk_widget_destroy (iw->window);
- g_object_unref (G_OBJECT (iw->pixmap));
- g_free (iw);
-}
-
-void
-meta_image_window_set_showing (MetaImageWindow *iw,
- gboolean showing)
-{
- if (showing)
- gtk_widget_show_all (iw->window);
- else
- {
- gtk_widget_hide (iw->window);
- meta_core_increment_event_serial (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
- }
-}
-
-void
-meta_image_window_set (MetaImageWindow *iw,
- GdkPixbuf *pixbuf,
- int x,
- int y)
-{
-#if GTK_CHECK_VERSION (3, 0, 0)
- cairo_t *cr;
-#endif
-
- /* We use a back pixmap to avoid having to handle exposes, because
- * it's really too slow for large clients being minimized, etc.
- * and this way flicker is genuinely zero.
- */
-
-#if !GTK_CHECK_VERSION (3, 0, 0)
- gdk_draw_pixbuf (iw->pixmap,
- gtk_widget_get_style (iw->window)->black_gc,
- pixbuf,
- 0, 0,
- 0, 0,
- gdk_pixbuf_get_width (pixbuf),
- gdk_pixbuf_get_height (pixbuf),
- GDK_RGB_DITHER_NORMAL,
- 0, 0);
-#else
- cr = gdk_cairo_create (iw->pixmap);
- gdk_cairo_set_source_pixbuf (cr, pixbuf, 0, 0);
- cairo_paint (cr);
- cairo_destroy (cr);
-#endif
-
- gdk_window_set_back_pixmap (gtk_widget_get_window (iw->window),
- iw->pixmap,
- FALSE);
-
- gdk_window_move_resize (gtk_widget_get_window (iw->window),
- x, y,
- gdk_pixbuf_get_width (pixbuf),
- gdk_pixbuf_get_height (pixbuf));
-
- gdk_window_clear (gtk_widget_get_window (iw->window));
-}
-#endif
-
-#if !GTK_CHECK_VERSION (3, 0, 0)
static GdkColormap*
get_cmap (GdkPixmap *pixmap)
{
@@ -714,7 +607,7 @@ get_cmap (GdkPixmap *pixmap)
/* Be sure we aren't going to blow up due to visual mismatch */
if (cmap &&
- (gdk_colormap_get_visual (cmap)->depth !=
+ (gdk_visual_get_depth (gdk_colormap_get_visual (cmap)) !=
gdk_drawable_get_depth (pixmap)))
{
cmap = NULL;
@@ -791,14 +684,10 @@ meta_gdk_pixbuf_get_from_pixmap (GdkPixbuf *dest,
{
GdkDrawable *drawable;
GdkPixbuf *retval;
-#if !GTK_CHECK_VERSION (3, 0, 0)
GdkColormap *cmap;
-#endif
retval = NULL;
-#if !GTK_CHECK_VERSION (3, 0, 0)
cmap = NULL;
-#endif
drawable = gdk_x11_window_lookup_for_display (gdk_display_get_default (), xpixmap);
@@ -818,10 +707,8 @@ meta_gdk_pixbuf_get_from_pixmap (GdkPixbuf *dest,
dest_x, dest_y,
width, height);
}
-#if !GTK_CHECK_VERSION (3, 0, 0)
if (cmap)
g_object_unref (G_OBJECT (cmap));
-#endif
if (drawable)
g_object_unref (G_OBJECT (drawable));
@@ -841,6 +728,20 @@ meta_ui_pop_delay_exposes (MetaUI *ui)
meta_frames_pop_delay_exposes (ui->frames);
}
+static GdkPixbuf *
+load_default_window_icon (int size)
+{
+ GtkIconTheme *theme = gtk_icon_theme_get_default ();
+ const char *icon_name;
+
+ if (gtk_icon_theme_has_icon (theme, META_DEFAULT_ICON_NAME))
+ icon_name = META_DEFAULT_ICON_NAME;
+ else
+ icon_name = "image-missing";
+
+ return gtk_icon_theme_load_icon (theme, icon_name, size, 0, NULL);
+}
+
GdkPixbuf*
meta_ui_get_default_window_icon (MetaUI *ui)
{
@@ -848,26 +749,7 @@ meta_ui_get_default_window_icon (MetaUI *ui)
if (default_icon == NULL)
{
- GtkIconTheme *theme;
- gboolean icon_exists;
-
- theme = gtk_icon_theme_get_default ();
-
- icon_exists = gtk_icon_theme_has_icon (theme, META_DEFAULT_ICON_NAME);
-
- if (icon_exists)
- default_icon = gtk_icon_theme_load_icon (theme,
- META_DEFAULT_ICON_NAME,
- META_ICON_WIDTH,
- 0,
- NULL);
- else
- default_icon = gtk_icon_theme_load_icon (theme,
- "image-missing",
- META_ICON_WIDTH,
- 0,
- NULL);
-
+ default_icon = load_default_window_icon (META_ICON_WIDTH);
g_assert (default_icon);
}
@@ -931,38 +813,6 @@ meta_ui_window_should_not_cause_focus (Display *xdisplay,
return FALSE;
}
-char*
-meta_text_property_to_utf8 (Display *xdisplay,
- const XTextProperty *prop)
-{
- GdkDisplay *display;
- char **list;
- int count;
- char *retval;
-
- list = NULL;
-
- display = gdk_x11_lookup_xdisplay (xdisplay);
- count = gdk_text_property_to_utf8_list_for_display (display,
- gdk_x11_xatom_to_atom_for_display (display, prop->encoding),
- prop->format,
- prop->value,
- prop->nitems,
- &list);
-
- if (count == 0)
- retval = NULL;
- else
- {
- retval = list[0];
- list[0] = g_strdup (""); /* something to free */
- }
-
- g_strfreev (list);
-
- return retval;
-}
-
void
meta_ui_theme_get_frame_borders (MetaUI *ui,
MetaFrameType type,
@@ -1253,9 +1103,7 @@ GdkPixbuf* meta_ui_get_pixbuf_from_pixmap(Pixmap pmap)
GdkPixmap* gpmap;
GdkScreen* screen;
GdkPixbuf* pixbuf;
-#if !GTK_CHECK_VERSION (3, 0, 0)
GdkColormap* cmap;
-#endif
int width;
int height;
int depth;
@@ -1263,16 +1111,10 @@ GdkPixbuf* meta_ui_get_pixbuf_from_pixmap(Pixmap pmap)
gpmap = gdk_pixmap_foreign_new(pmap);
screen = gdk_drawable_get_screen(gpmap);
-#if GTK_CHECK_VERSION(3, 0, 0)
- width = gdk_window_get_width(GDK_WINDOW(gpmap));
- height = gdk_window_get_height(GDK_WINDOW(gpmap));
-#else
gdk_drawable_get_size(GDK_DRAWABLE(gpmap), &width, &height);
-#endif
depth = gdk_drawable_get_depth(GDK_DRAWABLE(gpmap));
-#if !GTK_CHECK_VERSION (3, 0, 0)
if (depth <= 24)
{
cmap = gdk_screen_get_system_colormap(screen);
@@ -1281,7 +1123,6 @@ GdkPixbuf* meta_ui_get_pixbuf_from_pixmap(Pixmap pmap)
{
cmap = gdk_screen_get_rgba_colormap(screen);
}
-#endif
pixbuf = gdk_pixbuf_get_from_drawable(NULL, gpmap, cmap, 0, 0, 0, 0, width, height);
diff --git a/src/wm-tester/main.c b/src/wm-tester/main.c
index d757270d..ae6db421 100644
--- a/src/wm-tester/main.c
+++ b/src/wm-tester/main.c
@@ -120,19 +120,11 @@ evil_timeout (gpointer data)
w = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-#if GTK_CHECK_VERSION (3, 0, 0)
gtk_window_move (GTK_WINDOW (w),
g_random_int_range (0,
gdk_screen_width ()),
g_random_int_range (0,
gdk_screen_height ()));
-#else
- gtk_widget_set_uposition (w,
- g_random_int_range (0,
- gdk_screen_width ()),
- g_random_int_range (0,
- gdk_screen_height ()));
-#endif
parent = NULL;