Compare commits
	
		
			154 Commits
		
	
	
		
			3.21.4
			...
			wip/garnac
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					cb16822780 | ||
| 
						 | 
					06112b1b0f | ||
| 
						 | 
					c7ff89bb01 | ||
| 
						 | 
					f36ae220c1 | ||
| 
						 | 
					8a50db5959 | ||
| 
						 | 
					8f05b0e020 | ||
| 
						 | 
					534f3aa5c9 | ||
| 
						 | 
					f1a0985e3a | ||
| 
						 | 
					6302ffe8ac | ||
| 
						 | 
					acc2ad9658 | ||
| 
						 | 
					d58f94dd47 | ||
| 
						 | 
					c63558dded | ||
| 
						 | 
					a53ca0d8cf | ||
| 
						 | 
					913c32ee34 | ||
| 
						 | 
					f31d8bab44 | ||
| 
						 | 
					6f8e6864b2 | ||
| 
						 | 
					aea706230d | ||
| 
						 | 
					f49458ccd9 | ||
| 
						 | 
					9064b4f1f9 | ||
| 
						 | 
					c977ba197e | ||
| 
						 | 
					f271c1b4ce | ||
| 
						 | 
					ea08ed7dc4 | ||
| 
						 | 
					3248c6852c | ||
| 
						 | 
					5649734100 | ||
| 
						 | 
					c55943d753 | ||
| 
						 | 
					19e02b3bbe | ||
| 
						 | 
					eb7f33265a | ||
| 
						 | 
					9f6f778589 | ||
| 
						 | 
					1f657d2c81 | ||
| 
						 | 
					6940169f46 | ||
| 
						 | 
					4678c24d83 | ||
| 
						 | 
					1ca57e0923 | ||
| 
						 | 
					b53b94e6f2 | ||
| 
						 | 
					4abd31d863 | ||
| 
						 | 
					3c8b1462bc | ||
| 
						 | 
					27a77fa115 | ||
| 
						 | 
					0992b5c53e | ||
| 
						 | 
					e928370bf0 | ||
| 
						 | 
					d2b05f0305 | ||
| 
						 | 
					bd326d38ac | ||
| 
						 | 
					8e335ce183 | ||
| 
						 | 
					364b184f41 | ||
| 
						 | 
					94016f7257 | ||
| 
						 | 
					e38a8363e4 | ||
| 
						 | 
					76eb27e786 | ||
| 
						 | 
					5db2be414b | ||
| 
						 | 
					61bfe04b7b | ||
| 
						 | 
					1931d0ef51 | ||
| 
						 | 
					46f1dcaecc | ||
| 
						 | 
					5c9a2c54c4 | ||
| 
						 | 
					dd549604e2 | ||
| 
						 | 
					8913cbb06d | ||
| 
						 | 
					96790276c5 | ||
| 
						 | 
					84eeebe32f | ||
| 
						 | 
					01f1de704d | ||
| 
						 | 
					6894563667 | ||
| 
						 | 
					9b4e8695f3 | ||
| 
						 | 
					adcd0fe9b4 | ||
| 
						 | 
					cc4a65fe94 | ||
| 
						 | 
					53061c7005 | ||
| 
						 | 
					53e3d0df64 | ||
| 
						 | 
					97d180ee59 | ||
| 
						 | 
					740748af3e | ||
| 
						 | 
					38d61f30dc | ||
| 
						 | 
					23c4ac6c7f | ||
| 
						 | 
					cfe5d7429a | ||
| 
						 | 
					36cd7177fd | ||
| 
						 | 
					2e4eb86340 | ||
| 
						 | 
					337b833e23 | ||
| 
						 | 
					d25af2a02a | ||
| 
						 | 
					820a6ab406 | ||
| 
						 | 
					cd225c4e19 | ||
| 
						 | 
					98cd8136ca | ||
| 
						 | 
					e6972924d0 | ||
| 
						 | 
					ead09bf6cc | ||
| 
						 | 
					fe09a3c4e2 | ||
| 
						 | 
					ee6867611f | ||
| 
						 | 
					207c11d1f7 | ||
| 
						 | 
					c6beb1cfc5 | ||
| 
						 | 
					b34fe72bb7 | ||
| 
						 | 
					18f301cec9 | ||
| 
						 | 
					406677e2a0 | ||
| 
						 | 
					4f25057413 | ||
| 
						 | 
					2f492c133c | ||
| 
						 | 
					138a47b8f9 | ||
| 
						 | 
					62e4954c96 | ||
| 
						 | 
					062b696df2 | ||
| 
						 | 
					5effde59f6 | ||
| 
						 | 
					76595af8af | ||
| 
						 | 
					21c8911254 | ||
| 
						 | 
					35554555e0 | ||
| 
						 | 
					e2ad8700a9 | ||
| 
						 | 
					323c608b0c | ||
| 
						 | 
					0efe076a0a | ||
| 
						 | 
					6f7f98540f | ||
| 
						 | 
					56632d2ef7 | ||
| 
						 | 
					6296d30e1a | ||
| 
						 | 
					ed16b40c98 | ||
| 
						 | 
					7bba20e536 | ||
| 
						 | 
					8e6244238d | ||
| 
						 | 
					ba9ec00694 | ||
| 
						 | 
					08cda496f8 | ||
| 
						 | 
					f9552bb9c0 | ||
| 
						 | 
					7e267e9b01 | ||
| 
						 | 
					fbb4c0b831 | ||
| 
						 | 
					d7faab76e0 | ||
| 
						 | 
					b7892ba1c5 | ||
| 
						 | 
					ab2d2af176 | ||
| 
						 | 
					80674fc9e4 | ||
| 
						 | 
					9587a60da4 | ||
| 
						 | 
					73958aeb59 | ||
| 
						 | 
					77b33a86b8 | ||
| 
						 | 
					f3b94d9a78 | ||
| 
						 | 
					af8b938f92 | ||
| 
						 | 
					1496a7ead3 | ||
| 
						 | 
					e7e62ee4a4 | ||
| 
						 | 
					f6e471fca4 | ||
| 
						 | 
					1dd121002f | ||
| 
						 | 
					526fdca3fb | ||
| 
						 | 
					220ac7c8f2 | ||
| 
						 | 
					5ea39e0e77 | ||
| 
						 | 
					1c23d4bc51 | ||
| 
						 | 
					2e6bfa8bae | ||
| 
						 | 
					a59170c09f | ||
| 
						 | 
					aa9b2c5494 | ||
| 
						 | 
					c1d157e136 | ||
| 
						 | 
					2cd21f1b20 | ||
| 
						 | 
					5ccde659c1 | ||
| 
						 | 
					fd62a1f6ce | ||
| 
						 | 
					b8808ca24d | ||
| 
						 | 
					41ff0aaf60 | ||
| 
						 | 
					c5d0791710 | ||
| 
						 | 
					828277f5e0 | ||
| 
						 | 
					e56d6b06cf | ||
| 
						 | 
					96aed5fd2e | ||
| 
						 | 
					88c510c38a | ||
| 
						 | 
					6bcff556b5 | ||
| 
						 | 
					81736b1dea | ||
| 
						 | 
					cc09ca8892 | ||
| 
						 | 
					d76aa89be9 | ||
| 
						 | 
					8cd4b0e11f | ||
| 
						 | 
					6b08990dcc | ||
| 
						 | 
					8b769a3412 | ||
| 
						 | 
					8d3ac8c3e9 | ||
| 
						 | 
					074b0d6b2a | ||
| 
						 | 
					8e8cdf1873 | ||
| 
						 | 
					72ee6b8b65 | ||
| 
						 | 
					3d9bb1cc09 | ||
| 
						 | 
					4ed59a020d | ||
| 
						 | 
					b5e797f453 | ||
| 
						 | 
					125cba7100 | ||
| 
						 | 
					720cbc5e5f | ||
| 
						 | 
					ad7ec6b979 | ||
| 
						 | 
					991f2d696a | 
							
								
								
									
										8
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -41,8 +41,14 @@ stamp-h1
 | 
			
		||||
*~
 | 
			
		||||
stamp-it
 | 
			
		||||
.intltool-merge-cache
 | 
			
		||||
ABOUT-NLS
 | 
			
		||||
POTFILES
 | 
			
		||||
Makevars.template
 | 
			
		||||
po/*.header
 | 
			
		||||
po/*.pot
 | 
			
		||||
po/*.sed
 | 
			
		||||
po/*.sin
 | 
			
		||||
Rules-quot
 | 
			
		||||
libmutter.pc
 | 
			
		||||
mutter
 | 
			
		||||
mutter-restart-helper
 | 
			
		||||
@@ -77,6 +83,8 @@ src/relative-pointer-unstable-v*-protocol.c
 | 
			
		||||
src/relative-pointer-unstable-v*-server-protocol.h
 | 
			
		||||
src/pointer-constraints-unstable-v*-protocol.c
 | 
			
		||||
src/pointer-constraints-unstable-v*-server-protocol.h
 | 
			
		||||
src/xdg-foreign-unstable-v*-protocol.c
 | 
			
		||||
src/xdg-foreign-unstable-v*-server-protocol.h
 | 
			
		||||
src/meta/meta-version.h
 | 
			
		||||
doc/reference/*.args
 | 
			
		||||
doc/reference/*.bak
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										21
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								NEWS
									
									
									
									
									
								
							@@ -1,3 +1,24 @@
 | 
			
		||||
3.21.90
 | 
			
		||||
=======
 | 
			
		||||
* Consider XDG_SESSION_TYPE when determining session type [Jouke; #759388]
 | 
			
		||||
* Re-add support for edge scrolling on some touchpads [Bastien; #768245]
 | 
			
		||||
* Support mouse and trackball acceleration profile [Jonas; #769179]
 | 
			
		||||
* Draw monitor contentn to individual framebuffer [Jonas; #768976]
 | 
			
		||||
* Support virtual input devices [Jonas, Carlos; #765009]
 | 
			
		||||
* Set correct output scale on hotplug [Jonas; #769505]
 | 
			
		||||
* Misc. bug fixes and cleanups [Florian, Jonas, Thomas, Bastien, Carlos;
 | 
			
		||||
  #769014, #769024, #769054, #769070, #769036, #769305, #769578, #769800,
 | 
			
		||||
  #769073]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Carlos Garnacho, Thomas Hindoe Paaboel Andersen, Simon McVittie,
 | 
			
		||||
  Alberts Muktupāvels, Florian Müllner, Bastien Nocera, Jouke Witteveen
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Daniel Mustieles [es], Aurimas Černius [lt], Dušan Kazik [sk],
 | 
			
		||||
  Fabio Tomat [fur], Balázs Úr [hu], Yosef Or Boczko [he], Marek Černocký [cs],
 | 
			
		||||
  Matej Urbančič [sl]
 | 
			
		||||
 | 
			
		||||
3.21.4
 | 
			
		||||
======
 | 
			
		||||
* Fix missing frame border around GTK+ dialogs [Florian; #745060]
 | 
			
		||||
 
 | 
			
		||||
@@ -123,6 +123,7 @@ source_h =					\
 | 
			
		||||
	clutter-transition.h		\
 | 
			
		||||
	clutter-types.h		\
 | 
			
		||||
	clutter-units.h 		\
 | 
			
		||||
	clutter-virtual-input-device.h	\
 | 
			
		||||
	clutter-zoom-action.h		\
 | 
			
		||||
	$(NULL)
 | 
			
		||||
 | 
			
		||||
@@ -168,6 +169,7 @@ source_c = \
 | 
			
		||||
	clutter-image.c		\
 | 
			
		||||
	clutter-input-device.c	\
 | 
			
		||||
	clutter-input-device-tool.c	\
 | 
			
		||||
	clutter-virtual-input-device.c	\
 | 
			
		||||
	clutter-interval.c            \
 | 
			
		||||
	clutter-keyframe-transition.c	\
 | 
			
		||||
	clutter-keysyms-table.c	\
 | 
			
		||||
@@ -418,6 +420,14 @@ x11_source_h_priv += \
 | 
			
		||||
	x11/clutter-input-device-xi2.h	\
 | 
			
		||||
	$(NULL)
 | 
			
		||||
 | 
			
		||||
x11_source_c += \
 | 
			
		||||
	x11/clutter-virtual-input-device-x11.c	\
 | 
			
		||||
	$(NULL)
 | 
			
		||||
 | 
			
		||||
x11_source_h_priv += \
 | 
			
		||||
	x11/clutter-virtual-input-device-x11.h	\
 | 
			
		||||
	$(NULL)
 | 
			
		||||
 | 
			
		||||
backend_source_h += $(x11_source_h)
 | 
			
		||||
backend_source_c += $(x11_source_c)
 | 
			
		||||
backend_source_h_priv += $(x11_source_h_priv)
 | 
			
		||||
@@ -458,13 +468,17 @@ backend_source_c += $(glx_source_c)
 | 
			
		||||
evdev_c_priv = \
 | 
			
		||||
	evdev/clutter-device-manager-evdev.c	\
 | 
			
		||||
	evdev/clutter-input-device-evdev.c	\
 | 
			
		||||
	evdev/clutter-seat-evdev.c		\
 | 
			
		||||
	evdev/clutter-virtual-input-device-evdev.c	\
 | 
			
		||||
	evdev/clutter-event-evdev.c		\
 | 
			
		||||
	evdev/clutter-input-device-tool-evdev.c	\
 | 
			
		||||
	$(NULL)
 | 
			
		||||
evdev_h_priv = \
 | 
			
		||||
	evdev/clutter-device-manager-evdev.h	\
 | 
			
		||||
	evdev/clutter-input-device-evdev.h	\
 | 
			
		||||
	evdev/clutter-seat-evdev.h		\
 | 
			
		||||
	evdev/clutter-input-device-tool-evdev.h	\
 | 
			
		||||
	evdev/clutter-virtual-input-device-evdev.h	\
 | 
			
		||||
	$(NULL)
 | 
			
		||||
evdev_h = evdev/clutter-evdev.h
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -401,7 +401,7 @@ clutter_canvas_emit_draw (ClutterCanvas *self)
 | 
			
		||||
  gboolean res;
 | 
			
		||||
  cairo_t *cr;
 | 
			
		||||
 | 
			
		||||
  g_assert (priv->width > 0 && priv->width > 0);
 | 
			
		||||
  g_assert (priv->height > 0 && priv->width > 0);
 | 
			
		||||
 | 
			
		||||
  priv->dirty = TRUE;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -131,9 +131,16 @@ struct _ClutterInputDevice
 | 
			
		||||
 | 
			
		||||
  gchar *vendor_id;
 | 
			
		||||
  gchar *product_id;
 | 
			
		||||
  gchar *node_path;
 | 
			
		||||
 | 
			
		||||
  GPtrArray *tools;
 | 
			
		||||
 | 
			
		||||
  gint n_rings;
 | 
			
		||||
  gint n_strips;
 | 
			
		||||
  gint n_mode_groups;
 | 
			
		||||
 | 
			
		||||
  ClutterInputDeviceMapping mapping_mode;
 | 
			
		||||
 | 
			
		||||
  guint has_cursor : 1;
 | 
			
		||||
  guint is_enabled : 1;
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -47,6 +47,7 @@
 | 
			
		||||
#include "clutter-marshal.h"
 | 
			
		||||
#include "clutter-private.h"
 | 
			
		||||
#include "clutter-stage-private.h"
 | 
			
		||||
#include "clutter-virtual-input-device.h"
 | 
			
		||||
 | 
			
		||||
struct _ClutterDeviceManagerPrivate
 | 
			
		||||
{
 | 
			
		||||
@@ -435,3 +436,25 @@ _clutter_device_manager_get_backend (ClutterDeviceManager *manager)
 | 
			
		||||
 | 
			
		||||
  return manager->priv->backend;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * clutter_device_manager_create_virtual_device:
 | 
			
		||||
 * @device_manager: a #ClutterDeviceManager
 | 
			
		||||
 * @device_type: the type of the virtual device
 | 
			
		||||
 *
 | 
			
		||||
 * Creates a virtual input device.
 | 
			
		||||
 *
 | 
			
		||||
 * Returns: (transfer full): a newly created virtual device
 | 
			
		||||
 **/
 | 
			
		||||
ClutterVirtualInputDevice *
 | 
			
		||||
clutter_device_manager_create_virtual_device (ClutterDeviceManager   *device_manager,
 | 
			
		||||
                                              ClutterInputDeviceType  device_type)
 | 
			
		||||
{
 | 
			
		||||
  ClutterDeviceManagerClass *manager_class;
 | 
			
		||||
 | 
			
		||||
  g_return_val_if_fail (CLUTTER_IS_DEVICE_MANAGER (device_manager), NULL);
 | 
			
		||||
 | 
			
		||||
  manager_class = CLUTTER_DEVICE_MANAGER_GET_CLASS (device_manager);
 | 
			
		||||
  return manager_class->create_virtual_device (device_manager,
 | 
			
		||||
                                               device_type);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -83,6 +83,8 @@ struct _ClutterDeviceManagerClass
 | 
			
		||||
                                           ClutterInputDevice     *device);
 | 
			
		||||
  void                (* select_stage_events) (ClutterDeviceManager *manager,
 | 
			
		||||
                                               ClutterStage       *stage);
 | 
			
		||||
  ClutterVirtualInputDevice *(* create_virtual_device) (ClutterDeviceManager  *manager,
 | 
			
		||||
                                                        ClutterInputDeviceType device_type);
 | 
			
		||||
 | 
			
		||||
  /* padding */
 | 
			
		||||
  gpointer _padding[7];
 | 
			
		||||
@@ -105,6 +107,10 @@ CLUTTER_AVAILABLE_IN_1_2
 | 
			
		||||
ClutterInputDevice *  clutter_device_manager_get_core_device (ClutterDeviceManager   *device_manager,
 | 
			
		||||
                                                              ClutterInputDeviceType  device_type);
 | 
			
		||||
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
ClutterVirtualInputDevice *clutter_device_manager_create_virtual_device (ClutterDeviceManager  *device_manager,
 | 
			
		||||
                                                                         ClutterInputDeviceType device_type);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif /* __CLUTTER_DEVICE_MANAGER_H__ */
 | 
			
		||||
 
 | 
			
		||||
@@ -794,6 +794,10 @@ typedef enum { /*< prefix=CLUTTER >*/
 | 
			
		||||
  CLUTTER_TOUCHPAD_SWIPE,
 | 
			
		||||
  CLUTTER_PROXIMITY_IN,
 | 
			
		||||
  CLUTTER_PROXIMITY_OUT,
 | 
			
		||||
  CLUTTER_PAD_BUTTON_PRESS,
 | 
			
		||||
  CLUTTER_PAD_BUTTON_RELEASE,
 | 
			
		||||
  CLUTTER_PAD_STRIP,
 | 
			
		||||
  CLUTTER_PAD_RING,
 | 
			
		||||
 | 
			
		||||
  CLUTTER_EVENT_LAST            /* helper */
 | 
			
		||||
} ClutterEventType;
 | 
			
		||||
@@ -900,6 +904,7 @@ typedef enum { /*< prefix=CLUTTER_FLOW >*/
 | 
			
		||||
 * @CLUTTER_PEN_DEVICE: A pen device
 | 
			
		||||
 * @CLUTTER_ERASER_DEVICE: An eraser device
 | 
			
		||||
 * @CLUTTER_CURSOR_DEVICE: A cursor device
 | 
			
		||||
 * @CLUTTER_PAD_DEVICE: A tablet pad
 | 
			
		||||
 * @CLUTTER_N_DEVICE_TYPES: The number of device types
 | 
			
		||||
 *
 | 
			
		||||
 * The types of input devices available.
 | 
			
		||||
@@ -920,6 +925,7 @@ typedef enum {
 | 
			
		||||
  CLUTTER_PEN_DEVICE,
 | 
			
		||||
  CLUTTER_ERASER_DEVICE,
 | 
			
		||||
  CLUTTER_CURSOR_DEVICE,
 | 
			
		||||
  CLUTTER_PAD_DEVICE,
 | 
			
		||||
 | 
			
		||||
  CLUTTER_N_DEVICE_TYPES
 | 
			
		||||
} ClutterInputDeviceType;
 | 
			
		||||
@@ -1520,6 +1526,16 @@ typedef enum {
 | 
			
		||||
  CLUTTER_INPUT_DEVICE_TOOL_LENS
 | 
			
		||||
} ClutterInputDeviceToolType;
 | 
			
		||||
 | 
			
		||||
typedef enum {
 | 
			
		||||
  CLUTTER_INPUT_DEVICE_PAD_SOURCE_UNKNOWN,
 | 
			
		||||
  CLUTTER_INPUT_DEVICE_PAD_SOURCE_FINGER,
 | 
			
		||||
} ClutterInputDevicePadSource;
 | 
			
		||||
 | 
			
		||||
typedef enum {
 | 
			
		||||
  CLUTTER_INPUT_DEVICE_MAPPING_ABSOLUTE,
 | 
			
		||||
  CLUTTER_INPUT_DEVICE_MAPPING_RELATIVE,
 | 
			
		||||
} ClutterInputDeviceMapping;
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif /* __CLUTTER_ENUMS_H__ */
 | 
			
		||||
 
 | 
			
		||||
@@ -413,6 +413,10 @@ clutter_event_get_position (const ClutterEvent *event,
 | 
			
		||||
    case CLUTTER_EVENT_LAST:
 | 
			
		||||
    case CLUTTER_PROXIMITY_IN:
 | 
			
		||||
    case CLUTTER_PROXIMITY_OUT:
 | 
			
		||||
    case CLUTTER_PAD_BUTTON_PRESS:
 | 
			
		||||
    case CLUTTER_PAD_BUTTON_RELEASE:
 | 
			
		||||
    case CLUTTER_PAD_STRIP:
 | 
			
		||||
    case CLUTTER_PAD_RING:
 | 
			
		||||
      clutter_point_init (position, 0.f, 0.f);
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
@@ -483,6 +487,10 @@ clutter_event_set_coords (ClutterEvent *event,
 | 
			
		||||
    case CLUTTER_EVENT_LAST:
 | 
			
		||||
    case CLUTTER_PROXIMITY_IN:
 | 
			
		||||
    case CLUTTER_PROXIMITY_OUT:
 | 
			
		||||
    case CLUTTER_PAD_BUTTON_PRESS:
 | 
			
		||||
    case CLUTTER_PAD_BUTTON_RELEASE:
 | 
			
		||||
    case CLUTTER_PAD_STRIP:
 | 
			
		||||
    case CLUTTER_PAD_RING:
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case CLUTTER_ENTER:
 | 
			
		||||
@@ -811,9 +819,15 @@ clutter_event_get_button (const ClutterEvent *event)
 | 
			
		||||
{
 | 
			
		||||
  g_return_val_if_fail (event != NULL, 0);
 | 
			
		||||
  g_return_val_if_fail (event->type == CLUTTER_BUTTON_PRESS ||
 | 
			
		||||
                        event->type == CLUTTER_BUTTON_RELEASE, 0);
 | 
			
		||||
                        event->type == CLUTTER_BUTTON_RELEASE ||
 | 
			
		||||
			event->type == CLUTTER_PAD_BUTTON_PRESS ||
 | 
			
		||||
			event->type == CLUTTER_PAD_BUTTON_RELEASE, 0);
 | 
			
		||||
 | 
			
		||||
  return event->button.button;
 | 
			
		||||
  if (event->type == CLUTTER_BUTTON_PRESS ||
 | 
			
		||||
      event->type == CLUTTER_BUTTON_RELEASE)
 | 
			
		||||
    return event->button.button;
 | 
			
		||||
  else
 | 
			
		||||
    return event->pad_button.button;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -1133,6 +1147,19 @@ clutter_event_set_device (ClutterEvent       *event,
 | 
			
		||||
    case CLUTTER_PROXIMITY_OUT:
 | 
			
		||||
      event->proximity.device = device;
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case CLUTTER_PAD_BUTTON_PRESS:
 | 
			
		||||
    case CLUTTER_PAD_BUTTON_RELEASE:
 | 
			
		||||
      event->pad_button.device = device;
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case CLUTTER_PAD_STRIP:
 | 
			
		||||
      event->pad_strip.device = device;
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case CLUTTER_PAD_RING:
 | 
			
		||||
      event->pad_ring.device = device;
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -1217,6 +1244,19 @@ clutter_event_get_device (const ClutterEvent *event)
 | 
			
		||||
    case CLUTTER_PROXIMITY_OUT:
 | 
			
		||||
      device = event->proximity.device;
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case CLUTTER_PAD_BUTTON_PRESS:
 | 
			
		||||
    case CLUTTER_PAD_BUTTON_RELEASE:
 | 
			
		||||
      device = event->pad_button.device;
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case CLUTTER_PAD_STRIP:
 | 
			
		||||
      device = event->pad_strip.device;
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case CLUTTER_PAD_RING:
 | 
			
		||||
      device = event->pad_ring.device;
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  return device;
 | 
			
		||||
@@ -1708,6 +1748,10 @@ clutter_event_get_axes (const ClutterEvent *event,
 | 
			
		||||
 | 
			
		||||
    case CLUTTER_TOUCHPAD_PINCH:
 | 
			
		||||
    case CLUTTER_TOUCHPAD_SWIPE:
 | 
			
		||||
    case CLUTTER_PAD_BUTTON_PRESS:
 | 
			
		||||
    case CLUTTER_PAD_BUTTON_RELEASE:
 | 
			
		||||
    case CLUTTER_PAD_STRIP:
 | 
			
		||||
    case CLUTTER_PAD_RING:
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -2108,3 +2152,24 @@ clutter_event_get_scroll_finish_flags (const ClutterEvent *event)
 | 
			
		||||
 | 
			
		||||
  return event->scroll.finish_flags;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
guint
 | 
			
		||||
clutter_event_get_mode_group (const ClutterEvent *event)
 | 
			
		||||
{
 | 
			
		||||
  g_return_val_if_fail (event->type == CLUTTER_PAD_BUTTON_PRESS ||
 | 
			
		||||
                        event->type == CLUTTER_PAD_BUTTON_RELEASE ||
 | 
			
		||||
                        event->type == CLUTTER_PAD_RING ||
 | 
			
		||||
                        event->type == CLUTTER_PAD_STRIP, 0);
 | 
			
		||||
  switch (event->type)
 | 
			
		||||
    {
 | 
			
		||||
    case CLUTTER_PAD_BUTTON_PRESS:
 | 
			
		||||
    case CLUTTER_PAD_BUTTON_RELEASE:
 | 
			
		||||
      return event->pad_button.group;
 | 
			
		||||
    case CLUTTER_PAD_RING:
 | 
			
		||||
      return event->pad_ring.group;
 | 
			
		||||
    case CLUTTER_PAD_STRIP:
 | 
			
		||||
      return event->pad_strip.group;
 | 
			
		||||
    default:
 | 
			
		||||
      return 0;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -118,6 +118,9 @@ typedef struct _ClutterTouchEvent       ClutterTouchEvent;
 | 
			
		||||
typedef struct _ClutterTouchpadPinchEvent ClutterTouchpadPinchEvent;
 | 
			
		||||
typedef struct _ClutterTouchpadSwipeEvent ClutterTouchpadSwipeEvent;
 | 
			
		||||
typedef struct _ClutterProximityEvent   ClutterProximityEvent;
 | 
			
		||||
typedef struct _ClutterPadButtonEvent   ClutterPadButtonEvent;
 | 
			
		||||
typedef struct _ClutterPadStripEvent    ClutterPadStripEvent;
 | 
			
		||||
typedef struct _ClutterPadRingEvent     ClutterPadRingEvent;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * ClutterAnyEvent:
 | 
			
		||||
@@ -493,6 +496,49 @@ struct _ClutterTouchpadSwipeEvent
 | 
			
		||||
  gfloat dy;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct _ClutterPadButtonEvent
 | 
			
		||||
{
 | 
			
		||||
  ClutterEventType type;
 | 
			
		||||
  guint32 time;
 | 
			
		||||
  ClutterEventFlags flags;
 | 
			
		||||
  ClutterStage *stage;
 | 
			
		||||
  ClutterActor *source;
 | 
			
		||||
 | 
			
		||||
  guint32 button;
 | 
			
		||||
  guint32 group;
 | 
			
		||||
  ClutterInputDevice *device;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct _ClutterPadStripEvent
 | 
			
		||||
{
 | 
			
		||||
  ClutterEventType type;
 | 
			
		||||
  guint32 time;
 | 
			
		||||
  ClutterEventFlags flags;
 | 
			
		||||
  ClutterStage *stage;
 | 
			
		||||
  ClutterActor *source;
 | 
			
		||||
 | 
			
		||||
  ClutterInputDevice *device;
 | 
			
		||||
  ClutterInputDevicePadSource strip_source;
 | 
			
		||||
  guint32 strip_number;
 | 
			
		||||
  guint32 group;
 | 
			
		||||
  gdouble value;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct _ClutterPadRingEvent
 | 
			
		||||
{
 | 
			
		||||
  ClutterEventType type;
 | 
			
		||||
  guint32 time;
 | 
			
		||||
  ClutterEventFlags flags;
 | 
			
		||||
  ClutterStage *stage;
 | 
			
		||||
  ClutterActor *source;
 | 
			
		||||
 | 
			
		||||
  ClutterInputDevice *device;
 | 
			
		||||
  ClutterInputDevicePadSource ring_source;
 | 
			
		||||
  guint32 ring_number;
 | 
			
		||||
  guint32 group;
 | 
			
		||||
  gdouble angle;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * ClutterEvent:
 | 
			
		||||
 *
 | 
			
		||||
@@ -516,6 +562,9 @@ union _ClutterEvent
 | 
			
		||||
  ClutterTouchpadPinchEvent touchpad_pinch;
 | 
			
		||||
  ClutterTouchpadSwipeEvent touchpad_swipe;
 | 
			
		||||
  ClutterProximityEvent proximity;
 | 
			
		||||
  ClutterPadButtonEvent pad_button;
 | 
			
		||||
  ClutterPadStripEvent pad_strip;
 | 
			
		||||
  ClutterPadRingEvent pad_ring;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -722,6 +771,10 @@ void                    clutter_event_get_gesture_motion_delta       (const Clut
 | 
			
		||||
ClutterScrollSource      clutter_event_get_scroll_source             (const ClutterEvent     *event);
 | 
			
		||||
ClutterScrollFinishFlags clutter_event_get_scroll_finish_flags       (const ClutterEvent     *event);
 | 
			
		||||
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
guint                    clutter_event_get_mode_group                (const ClutterEvent     *event);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif /* __CLUTTER_EVENT_H__ */
 | 
			
		||||
 
 | 
			
		||||
@@ -34,12 +34,14 @@ struct _ClutterInputDeviceToolPrivate
 | 
			
		||||
{
 | 
			
		||||
  ClutterInputDeviceToolType type;
 | 
			
		||||
  guint64 serial;
 | 
			
		||||
  guint64 id;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum {
 | 
			
		||||
  PROP_0,
 | 
			
		||||
  PROP_TYPE,
 | 
			
		||||
  PROP_SERIAL,
 | 
			
		||||
  PROP_ID,
 | 
			
		||||
  PROP_LAST
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@@ -66,6 +68,9 @@ clutter_input_device_tool_set_property (GObject      *object,
 | 
			
		||||
    case PROP_SERIAL:
 | 
			
		||||
      priv->serial = g_value_get_uint64 (value);
 | 
			
		||||
      break;
 | 
			
		||||
    case PROP_ID:
 | 
			
		||||
      priv->id = g_value_get_uint64 (value);
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 | 
			
		||||
    }
 | 
			
		||||
@@ -90,6 +95,9 @@ clutter_input_device_tool_get_property (GObject    *object,
 | 
			
		||||
    case PROP_SERIAL:
 | 
			
		||||
      g_value_set_uint64 (value, priv->serial);
 | 
			
		||||
      break;
 | 
			
		||||
    case PROP_ID:
 | 
			
		||||
      g_value_set_uint64 (value, priv->id);
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 | 
			
		||||
    }
 | 
			
		||||
@@ -116,6 +124,12 @@ clutter_input_device_tool_class_init (ClutterInputDeviceToolClass *klass)
 | 
			
		||||
                         P_("Tool serial"),
 | 
			
		||||
                         0, G_MAXUINT64, 0,
 | 
			
		||||
                         CLUTTER_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
 | 
			
		||||
  props[PROP_ID] =
 | 
			
		||||
    g_param_spec_uint64 ("id",
 | 
			
		||||
                         P_("Tool ID"),
 | 
			
		||||
                         P_("Tool ID"),
 | 
			
		||||
                         0, G_MAXUINT64, 0,
 | 
			
		||||
                         CLUTTER_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
 | 
			
		||||
 | 
			
		||||
  g_object_class_install_properties (gobject_class, PROP_LAST, props);
 | 
			
		||||
}
 | 
			
		||||
@@ -136,7 +150,7 @@ clutter_input_device_tool_init (ClutterInputDeviceTool *tool)
 | 
			
		||||
 *
 | 
			
		||||
 * Since: 1.28
 | 
			
		||||
 **/
 | 
			
		||||
guint
 | 
			
		||||
guint64
 | 
			
		||||
clutter_input_device_tool_get_serial (ClutterInputDeviceTool *tool)
 | 
			
		||||
{
 | 
			
		||||
  ClutterInputDeviceToolPrivate *priv;
 | 
			
		||||
@@ -170,3 +184,24 @@ clutter_input_device_tool_get_tool_type (ClutterInputDeviceTool *tool)
 | 
			
		||||
 | 
			
		||||
  return priv->type;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * clutter_input_device_tool_get_id:
 | 
			
		||||
 * @tool: a #ClutterInputDeviceTool
 | 
			
		||||
 *
 | 
			
		||||
 * Gets the ID of this tool, this value can be used to identify a
 | 
			
		||||
 * physical tool (eg. a tablet pen) across program executions.
 | 
			
		||||
 *
 | 
			
		||||
 * Returns: The tool ID for this tool
 | 
			
		||||
 **/
 | 
			
		||||
guint64
 | 
			
		||||
clutter_input_device_tool_get_id (ClutterInputDeviceTool *tool)
 | 
			
		||||
{
 | 
			
		||||
  ClutterInputDeviceToolPrivate *priv;
 | 
			
		||||
 | 
			
		||||
  g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE_TOOL (tool), 0);
 | 
			
		||||
 | 
			
		||||
  priv = clutter_input_device_tool_get_instance_private (tool);
 | 
			
		||||
 | 
			
		||||
  return priv->id;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -56,11 +56,14 @@ CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
GType                      clutter_input_device_tool_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
guint                      clutter_input_device_tool_get_serial    (ClutterInputDeviceTool *tool);
 | 
			
		||||
guint64                    clutter_input_device_tool_get_serial    (ClutterInputDeviceTool *tool);
 | 
			
		||||
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
ClutterInputDeviceToolType clutter_input_device_tool_get_tool_type (ClutterInputDeviceTool *tool);
 | 
			
		||||
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
guint64                    clutter_input_device_tool_get_id        (ClutterInputDeviceTool *tool);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif /* __CLUTTER_INPUT_DEVICE_TOOL_H__ */
 | 
			
		||||
 
 | 
			
		||||
@@ -70,6 +70,12 @@ enum
 | 
			
		||||
  PROP_VENDOR_ID,
 | 
			
		||||
  PROP_PRODUCT_ID,
 | 
			
		||||
 | 
			
		||||
  PROP_N_STRIPS,
 | 
			
		||||
  PROP_N_RINGS,
 | 
			
		||||
  PROP_N_MODE_GROUPS,
 | 
			
		||||
  PROP_DEVICE_NODE,
 | 
			
		||||
  PROP_MAPPING_MODE,
 | 
			
		||||
 | 
			
		||||
  PROP_LAST
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@@ -195,6 +201,26 @@ clutter_input_device_set_property (GObject      *gobject,
 | 
			
		||||
      self->product_id = g_value_dup_string (value);
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case PROP_N_RINGS:
 | 
			
		||||
      self->n_rings = g_value_get_int (value);
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case PROP_N_STRIPS:
 | 
			
		||||
      self->n_strips = g_value_get_int (value);
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case PROP_N_MODE_GROUPS:
 | 
			
		||||
      self->n_mode_groups = g_value_get_int (value);
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case PROP_DEVICE_NODE:
 | 
			
		||||
      self->node_path = g_value_dup_string (value);
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case PROP_MAPPING_MODE:
 | 
			
		||||
      self->mapping_mode = g_value_get_enum (value);
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    default:
 | 
			
		||||
      G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
 | 
			
		||||
      break;
 | 
			
		||||
@@ -255,6 +281,26 @@ clutter_input_device_get_property (GObject    *gobject,
 | 
			
		||||
      g_value_set_string (value, self->product_id);
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case PROP_N_RINGS:
 | 
			
		||||
      g_value_set_int (value, self->n_rings);
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case PROP_N_STRIPS:
 | 
			
		||||
      g_value_set_int (value, self->n_strips);
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case PROP_N_MODE_GROUPS:
 | 
			
		||||
      g_value_set_int (value, self->n_mode_groups);
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case PROP_DEVICE_NODE:
 | 
			
		||||
      g_value_set_string (value, self->node_path);
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case PROP_MAPPING_MODE:
 | 
			
		||||
      g_value_set_enum (value, self->mapping_mode);
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    default:
 | 
			
		||||
      G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
 | 
			
		||||
      break;
 | 
			
		||||
@@ -432,6 +478,42 @@ clutter_input_device_class_init (ClutterInputDeviceClass *klass)
 | 
			
		||||
                         NULL,
 | 
			
		||||
                         CLUTTER_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
 | 
			
		||||
 | 
			
		||||
  obj_props[PROP_N_RINGS] =
 | 
			
		||||
    g_param_spec_int ("n-rings",
 | 
			
		||||
                      P_("Number of rings"),
 | 
			
		||||
                      P_("Number of rings (circular sliders) in this device"),
 | 
			
		||||
                      0, G_MAXINT, 0,
 | 
			
		||||
                      CLUTTER_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
 | 
			
		||||
 | 
			
		||||
  obj_props[PROP_N_STRIPS] =
 | 
			
		||||
    g_param_spec_int ("n-strips",
 | 
			
		||||
                      P_("Number of strips"),
 | 
			
		||||
                      P_("Number of strips (linear sliders) in this device"),
 | 
			
		||||
                      0, G_MAXINT, 0,
 | 
			
		||||
                      CLUTTER_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
 | 
			
		||||
 | 
			
		||||
  obj_props[PROP_N_MODE_GROUPS] =
 | 
			
		||||
    g_param_spec_int ("n-mode-groups",
 | 
			
		||||
                      P_("Number of mode groups"),
 | 
			
		||||
                      P_("Number of mode groups"),
 | 
			
		||||
                      0, G_MAXINT, 0,
 | 
			
		||||
                      CLUTTER_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
 | 
			
		||||
 | 
			
		||||
  obj_props[PROP_DEVICE_NODE] =
 | 
			
		||||
    g_param_spec_string ("device-node",
 | 
			
		||||
                         P_("Device node path"),
 | 
			
		||||
                         P_("Device node path"),
 | 
			
		||||
                         NULL,
 | 
			
		||||
                         CLUTTER_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
 | 
			
		||||
 | 
			
		||||
  obj_props[PROP_MAPPING_MODE] =
 | 
			
		||||
    g_param_spec_enum ("mapping-mode",
 | 
			
		||||
                       P_("Device mapping mode"),
 | 
			
		||||
                       P_("Device mapping mode"),
 | 
			
		||||
                       CLUTTER_TYPE_INPUT_DEVICE_MAPPING,
 | 
			
		||||
                       CLUTTER_INPUT_DEVICE_MAPPING_ABSOLUTE,
 | 
			
		||||
                       CLUTTER_PARAM_READWRITE);
 | 
			
		||||
 | 
			
		||||
  gobject_class->dispose = clutter_input_device_dispose;
 | 
			
		||||
  gobject_class->set_property = clutter_input_device_set_property;
 | 
			
		||||
  gobject_class->get_property = clutter_input_device_get_property;
 | 
			
		||||
@@ -2066,3 +2148,64 @@ clutter_input_device_update_from_tool (ClutterInputDevice     *device,
 | 
			
		||||
  if (device_class->update_from_tool)
 | 
			
		||||
    device_class->update_from_tool (device, tool);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
gint
 | 
			
		||||
clutter_input_device_get_n_rings (ClutterInputDevice *device)
 | 
			
		||||
{
 | 
			
		||||
  g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE (device), 0);
 | 
			
		||||
 | 
			
		||||
  return device->n_rings;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
gint
 | 
			
		||||
clutter_input_device_get_n_strips (ClutterInputDevice *device)
 | 
			
		||||
{
 | 
			
		||||
  g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE (device), 0);
 | 
			
		||||
 | 
			
		||||
  return device->n_strips;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
gint
 | 
			
		||||
clutter_input_device_get_n_mode_groups (ClutterInputDevice *device)
 | 
			
		||||
{
 | 
			
		||||
  g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE (device), 0);
 | 
			
		||||
  g_return_val_if_fail (clutter_input_device_get_device_type (device) ==
 | 
			
		||||
                        CLUTTER_PAD_DEVICE, 0);
 | 
			
		||||
 | 
			
		||||
  return device->n_mode_groups;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const gchar *
 | 
			
		||||
clutter_input_device_get_device_node (ClutterInputDevice *device)
 | 
			
		||||
{
 | 
			
		||||
  g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE (device), NULL);
 | 
			
		||||
 | 
			
		||||
  return device->node_path;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ClutterInputDeviceMapping
 | 
			
		||||
clutter_input_device_get_mapping_mode (ClutterInputDevice *device)
 | 
			
		||||
{
 | 
			
		||||
  g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE (device),
 | 
			
		||||
                        CLUTTER_INPUT_DEVICE_MAPPING_ABSOLUTE);
 | 
			
		||||
  g_return_val_if_fail (clutter_input_device_get_device_type (device) ==
 | 
			
		||||
                        CLUTTER_TABLET_DEVICE,
 | 
			
		||||
                        CLUTTER_INPUT_DEVICE_MAPPING_ABSOLUTE);
 | 
			
		||||
 | 
			
		||||
  return device->mapping_mode;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_input_device_set_mapping_mode (ClutterInputDevice        *device,
 | 
			
		||||
                                       ClutterInputDeviceMapping  mapping)
 | 
			
		||||
{
 | 
			
		||||
  g_return_if_fail (CLUTTER_IS_INPUT_DEVICE (device));
 | 
			
		||||
  g_return_if_fail (clutter_input_device_get_device_type (device) ==
 | 
			
		||||
                    CLUTTER_TABLET_DEVICE);
 | 
			
		||||
 | 
			
		||||
  if (device->mapping_mode == mapping)
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  device->mapping_mode = mapping;
 | 
			
		||||
  g_object_notify (G_OBJECT (device), "mapping-mode");
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -140,6 +140,23 @@ const gchar *           clutter_input_device_get_vendor_id      (ClutterInputDev
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_22
 | 
			
		||||
const gchar *           clutter_input_device_get_product_id     (ClutterInputDevice *device);
 | 
			
		||||
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gint                    clutter_input_device_get_n_rings        (ClutterInputDevice *device);
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gint                    clutter_input_device_get_n_strips       (ClutterInputDevice *device);
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gint                    clutter_input_device_get_n_mode_groups  (ClutterInputDevice *device);
 | 
			
		||||
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
const gchar *           clutter_input_device_get_device_node    (ClutterInputDevice *device);
 | 
			
		||||
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
ClutterInputDeviceMapping clutter_input_device_get_mapping_mode (ClutterInputDevice *device);
 | 
			
		||||
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                      clutter_input_device_set_mapping_mode (ClutterInputDevice        *device,
 | 
			
		||||
                                                                 ClutterInputDeviceMapping  mapping);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif /* __CLUTTER_INPUT_DEVICE_H__ */
 | 
			
		||||
 
 | 
			
		||||
@@ -2163,6 +2163,10 @@ _clutter_process_event_details (ClutterActor        *stage,
 | 
			
		||||
 | 
			
		||||
      case CLUTTER_KEY_PRESS:
 | 
			
		||||
      case CLUTTER_KEY_RELEASE:
 | 
			
		||||
      case CLUTTER_PAD_BUTTON_PRESS:
 | 
			
		||||
      case CLUTTER_PAD_BUTTON_RELEASE:
 | 
			
		||||
      case CLUTTER_PAD_STRIP:
 | 
			
		||||
      case CLUTTER_PAD_RING:
 | 
			
		||||
        {
 | 
			
		||||
          ClutterActor *actor = NULL;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -27,6 +27,7 @@ enum
 | 
			
		||||
 | 
			
		||||
  PROP_LAYOUT,
 | 
			
		||||
  PROP_FRAMEBUFFER,
 | 
			
		||||
  PROP_OFFSCREEN,
 | 
			
		||||
 | 
			
		||||
  PROP_LAST
 | 
			
		||||
};
 | 
			
		||||
@@ -37,6 +38,10 @@ typedef struct _ClutterStageViewPrivate
 | 
			
		||||
{
 | 
			
		||||
  cairo_rectangle_int_t layout;
 | 
			
		||||
  CoglFramebuffer *framebuffer;
 | 
			
		||||
 | 
			
		||||
  CoglOffscreen *offscreen;
 | 
			
		||||
  CoglPipeline *pipeline;
 | 
			
		||||
 | 
			
		||||
  guint dirty_viewport   : 1;
 | 
			
		||||
  guint dirty_projection : 1;
 | 
			
		||||
} ClutterStageViewPrivate;
 | 
			
		||||
@@ -55,6 +60,18 @@ clutter_stage_view_get_layout (ClutterStageView      *view,
 | 
			
		||||
 | 
			
		||||
CoglFramebuffer *
 | 
			
		||||
clutter_stage_view_get_framebuffer (ClutterStageView *view)
 | 
			
		||||
{
 | 
			
		||||
  ClutterStageViewPrivate *priv =
 | 
			
		||||
    clutter_stage_view_get_instance_private (view);
 | 
			
		||||
 | 
			
		||||
  if (priv->offscreen)
 | 
			
		||||
    return priv->offscreen;
 | 
			
		||||
  else
 | 
			
		||||
    return priv->framebuffer;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
CoglFramebuffer *
 | 
			
		||||
clutter_stage_view_get_onscreen (ClutterStageView *view)
 | 
			
		||||
{
 | 
			
		||||
  ClutterStageViewPrivate *priv =
 | 
			
		||||
    clutter_stage_view_get_instance_private (view);
 | 
			
		||||
@@ -62,6 +79,108 @@ clutter_stage_view_get_framebuffer (ClutterStageView *view)
 | 
			
		||||
  return priv->framebuffer;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_stage_view_ensure_offscreen_blit_pipeline (ClutterStageView *view)
 | 
			
		||||
{
 | 
			
		||||
  ClutterStageViewPrivate *priv =
 | 
			
		||||
    clutter_stage_view_get_instance_private (view);
 | 
			
		||||
  ClutterStageViewClass *view_class =
 | 
			
		||||
    CLUTTER_STAGE_VIEW_GET_CLASS (view);
 | 
			
		||||
 | 
			
		||||
  g_assert (priv->offscreen != NULL);
 | 
			
		||||
 | 
			
		||||
  if (priv->pipeline)
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  priv->pipeline =
 | 
			
		||||
    cogl_pipeline_new (cogl_framebuffer_get_context (priv->offscreen));
 | 
			
		||||
  cogl_pipeline_set_layer_filters (priv->pipeline, 0,
 | 
			
		||||
                                   COGL_PIPELINE_FILTER_NEAREST,
 | 
			
		||||
                                   COGL_PIPELINE_FILTER_NEAREST);
 | 
			
		||||
  cogl_pipeline_set_layer_texture (priv->pipeline, 0,
 | 
			
		||||
                                   cogl_offscreen_get_texture (priv->offscreen));
 | 
			
		||||
  cogl_pipeline_set_layer_wrap_mode (priv->pipeline, 0,
 | 
			
		||||
                                     COGL_PIPELINE_WRAP_MODE_CLAMP_TO_EDGE);
 | 
			
		||||
 | 
			
		||||
  if (view_class->setup_offscreen_blit_pipeline)
 | 
			
		||||
    view_class->setup_offscreen_blit_pipeline (view, priv->pipeline);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_stage_view_invalidate_offscreen_blit_pipeline (ClutterStageView *view)
 | 
			
		||||
{
 | 
			
		||||
  ClutterStageViewPrivate *priv =
 | 
			
		||||
    clutter_stage_view_get_instance_private (view);
 | 
			
		||||
 | 
			
		||||
  g_clear_pointer (&priv->pipeline, cogl_object_unref);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
transform_rect_to_onscreen (ClutterStageView        *view,
 | 
			
		||||
                            const cairo_rectangle_t *rect,
 | 
			
		||||
                            cairo_rectangle_t       *rect_out)
 | 
			
		||||
{
 | 
			
		||||
  float x1, y1, x2, y2;
 | 
			
		||||
 | 
			
		||||
  x1 = rect->x;
 | 
			
		||||
  y1 = rect->y;
 | 
			
		||||
  clutter_stage_view_transform_to_onscreen (view, &x1, &y1);
 | 
			
		||||
 | 
			
		||||
  x2 = rect->x + rect->width;
 | 
			
		||||
  y2 = rect->y + rect->height;
 | 
			
		||||
  clutter_stage_view_transform_to_onscreen (view, &x2, &y2);
 | 
			
		||||
 | 
			
		||||
  *rect_out = (cairo_rectangle_t) {
 | 
			
		||||
    .x = MIN (x1, x2),
 | 
			
		||||
    .y = MIN (y1, y2),
 | 
			
		||||
    .width = ABS (x2 - x1),
 | 
			
		||||
    .height = ABS (y2 - y1)
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_stage_view_blit_offscreen (ClutterStageView            *view,
 | 
			
		||||
                                   const cairo_rectangle_int_t *rect)
 | 
			
		||||
{
 | 
			
		||||
  ClutterStageViewPrivate *priv =
 | 
			
		||||
    clutter_stage_view_get_instance_private (view);
 | 
			
		||||
  cairo_rectangle_t texture_rect, onscreen_rect;
 | 
			
		||||
  CoglMatrix matrix;
 | 
			
		||||
 | 
			
		||||
  clutter_stage_view_ensure_offscreen_blit_pipeline (view);
 | 
			
		||||
  cogl_framebuffer_push_matrix (priv->framebuffer);
 | 
			
		||||
 | 
			
		||||
  /* Set transform so 0,0 is on the top left corner and 1,1 on
 | 
			
		||||
   * the bottom right corner.
 | 
			
		||||
   */
 | 
			
		||||
  cogl_matrix_init_identity (&matrix);
 | 
			
		||||
  cogl_matrix_translate (&matrix, -1, 1, 0);
 | 
			
		||||
  cogl_matrix_scale (&matrix, 2, -2, 0);
 | 
			
		||||
  cogl_framebuffer_set_projection_matrix (priv->framebuffer, &matrix);
 | 
			
		||||
 | 
			
		||||
  texture_rect = (cairo_rectangle_t) {
 | 
			
		||||
    .x = (double) rect->x / cogl_framebuffer_get_width (priv->offscreen),
 | 
			
		||||
    .y = (double) rect->y / cogl_framebuffer_get_height (priv->offscreen),
 | 
			
		||||
    .width = (double) rect->width / cogl_framebuffer_get_width (priv->offscreen),
 | 
			
		||||
    .height = (double) rect->height / cogl_framebuffer_get_height (priv->offscreen)
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  transform_rect_to_onscreen (view, &texture_rect, &onscreen_rect);
 | 
			
		||||
 | 
			
		||||
  cogl_framebuffer_draw_textured_rectangle (priv->framebuffer,
 | 
			
		||||
                                            priv->pipeline,
 | 
			
		||||
                                            onscreen_rect.x,
 | 
			
		||||
                                            onscreen_rect.y,
 | 
			
		||||
                                            onscreen_rect.x + onscreen_rect.width,
 | 
			
		||||
                                            onscreen_rect.y + onscreen_rect.height,
 | 
			
		||||
                                            texture_rect.x,
 | 
			
		||||
                                            texture_rect.y,
 | 
			
		||||
                                            texture_rect.x + texture_rect.width,
 | 
			
		||||
                                            texture_rect.y + texture_rect.height);
 | 
			
		||||
 | 
			
		||||
  cogl_framebuffer_pop_matrix (priv->framebuffer);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
gboolean
 | 
			
		||||
clutter_stage_view_is_dirty_viewport (ClutterStageView *view)
 | 
			
		||||
{
 | 
			
		||||
@@ -100,6 +219,27 @@ clutter_stage_view_set_dirty_projection (ClutterStageView *view,
 | 
			
		||||
  priv->dirty_projection = dirty;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_stage_view_transform_to_onscreen (ClutterStageView *view,
 | 
			
		||||
                                          gfloat           *x,
 | 
			
		||||
                                          gfloat           *y)
 | 
			
		||||
{
 | 
			
		||||
  ClutterStageViewClass *view_class = CLUTTER_STAGE_VIEW_GET_CLASS (view);
 | 
			
		||||
  gfloat z = 0, w = 1;
 | 
			
		||||
  CoglMatrix matrix;
 | 
			
		||||
 | 
			
		||||
  view_class->get_offscreen_transformation_matrix (view, &matrix);
 | 
			
		||||
  cogl_matrix_get_inverse (&matrix, &matrix);
 | 
			
		||||
  cogl_matrix_transform_point (&matrix, x, y, &z, &w);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_stage_default_get_offscreen_transformation_matrix (ClutterStageView *view,
 | 
			
		||||
                                                           CoglMatrix       *matrix)
 | 
			
		||||
{
 | 
			
		||||
  cogl_matrix_init_identity (matrix);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_stage_view_get_property (GObject    *object,
 | 
			
		||||
                                 guint       prop_id,
 | 
			
		||||
@@ -118,6 +258,11 @@ clutter_stage_view_get_property (GObject    *object,
 | 
			
		||||
    case PROP_FRAMEBUFFER:
 | 
			
		||||
      g_value_set_boxed (value, priv->framebuffer);
 | 
			
		||||
      break;
 | 
			
		||||
    case PROP_OFFSCREEN:
 | 
			
		||||
      g_value_set_boxed (value, priv->offscreen);
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -141,6 +286,11 @@ clutter_stage_view_set_property (GObject      *object,
 | 
			
		||||
    case PROP_FRAMEBUFFER:
 | 
			
		||||
      priv->framebuffer = g_value_dup_boxed (value);
 | 
			
		||||
      break;
 | 
			
		||||
    case PROP_OFFSCREEN:
 | 
			
		||||
      priv->offscreen = g_value_dup_boxed (value);
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -152,11 +302,20 @@ clutter_stage_view_dispose (GObject *object)
 | 
			
		||||
    clutter_stage_view_get_instance_private (view);
 | 
			
		||||
 | 
			
		||||
  g_clear_pointer (&priv->framebuffer, cogl_object_unref);
 | 
			
		||||
  g_clear_pointer (&priv->offscreen, cogl_object_unref);
 | 
			
		||||
  g_clear_pointer (&priv->pipeline, cogl_object_unref);
 | 
			
		||||
 | 
			
		||||
  G_OBJECT_CLASS (clutter_stage_view_parent_class)->dispose (object);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_stage_view_init (ClutterStageView *view)
 | 
			
		||||
{
 | 
			
		||||
  ClutterStageViewPrivate *priv =
 | 
			
		||||
    clutter_stage_view_get_instance_private (view);
 | 
			
		||||
 | 
			
		||||
  priv->dirty_viewport = TRUE;
 | 
			
		||||
  priv->dirty_projection = TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
@@ -164,6 +323,9 @@ clutter_stage_view_class_init (ClutterStageViewClass *klass)
 | 
			
		||||
{
 | 
			
		||||
  GObjectClass *object_class = G_OBJECT_CLASS (klass);
 | 
			
		||||
 | 
			
		||||
  klass->get_offscreen_transformation_matrix =
 | 
			
		||||
    clutter_stage_default_get_offscreen_transformation_matrix;
 | 
			
		||||
 | 
			
		||||
  object_class->get_property = clutter_stage_view_get_property;
 | 
			
		||||
  object_class->set_property = clutter_stage_view_set_property;
 | 
			
		||||
  object_class->dispose = clutter_stage_view_dispose;
 | 
			
		||||
@@ -179,10 +341,19 @@ clutter_stage_view_class_init (ClutterStageViewClass *klass)
 | 
			
		||||
  obj_props[PROP_FRAMEBUFFER] =
 | 
			
		||||
    g_param_spec_boxed ("framebuffer",
 | 
			
		||||
                        "View framebuffer",
 | 
			
		||||
                        "The framebuffer of the view",
 | 
			
		||||
                        "The front buffer of the view",
 | 
			
		||||
                        COGL_TYPE_HANDLE,
 | 
			
		||||
                        G_PARAM_READWRITE |
 | 
			
		||||
                        G_PARAM_STATIC_STRINGS);
 | 
			
		||||
 | 
			
		||||
  obj_props[PROP_OFFSCREEN] =
 | 
			
		||||
    g_param_spec_boxed ("offscreen",
 | 
			
		||||
                        "Offscreen buffer",
 | 
			
		||||
                        "Framebuffer used as intermediate buffer",
 | 
			
		||||
                        COGL_TYPE_HANDLE,
 | 
			
		||||
                        G_PARAM_READWRITE |
 | 
			
		||||
			G_PARAM_CONSTRUCT_ONLY |
 | 
			
		||||
                        G_PARAM_STATIC_STRINGS);
 | 
			
		||||
 | 
			
		||||
  g_object_class_install_properties (object_class, PROP_LAST, obj_props);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -33,6 +33,12 @@ G_DECLARE_DERIVABLE_TYPE (ClutterStageView, clutter_stage_view,
 | 
			
		||||
struct _ClutterStageViewClass
 | 
			
		||||
{
 | 
			
		||||
  GObjectClass parent_class;
 | 
			
		||||
 | 
			
		||||
  void (* setup_offscreen_blit_pipeline) (ClutterStageView *view,
 | 
			
		||||
                                          CoglPipeline     *pipeline);
 | 
			
		||||
 | 
			
		||||
  void (* get_offscreen_transformation_matrix) (ClutterStageView *view,
 | 
			
		||||
                                                CoglMatrix       *matrix);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_AVAILABLE_IN_MUTTER
 | 
			
		||||
@@ -41,6 +47,18 @@ void clutter_stage_view_get_layout (ClutterStageView      *view,
 | 
			
		||||
 | 
			
		||||
CLUTTER_AVAILABLE_IN_MUTTER
 | 
			
		||||
CoglFramebuffer *clutter_stage_view_get_framebuffer (ClutterStageView *view);
 | 
			
		||||
CLUTTER_AVAILABLE_IN_MUTTER
 | 
			
		||||
CoglFramebuffer *clutter_stage_view_get_onscreen (ClutterStageView *view);
 | 
			
		||||
CLUTTER_AVAILABLE_IN_MUTTER
 | 
			
		||||
void             clutter_stage_view_invalidate_offscreen_blit_pipeline (ClutterStageView *view);
 | 
			
		||||
 | 
			
		||||
CLUTTER_AVAILABLE_IN_MUTTER
 | 
			
		||||
void             clutter_stage_view_transform_to_onscreen (ClutterStageView *view,
 | 
			
		||||
                                                           gfloat           *x,
 | 
			
		||||
                                                           gfloat           *y);
 | 
			
		||||
 | 
			
		||||
void clutter_stage_view_blit_offscreen (ClutterStageView            *view,
 | 
			
		||||
					const cairo_rectangle_int_t *clip);
 | 
			
		||||
 | 
			
		||||
gboolean clutter_stage_view_is_dirty_viewport (ClutterStageView *view);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -676,6 +676,12 @@ clutter_stage_do_paint_view (ClutterStage                *stage,
 | 
			
		||||
  _clutter_stage_paint_volume_stack_free_all (stage);
 | 
			
		||||
  _clutter_stage_update_active_framebuffer (stage, framebuffer);
 | 
			
		||||
  clutter_actor_paint (CLUTTER_ACTOR (stage));
 | 
			
		||||
 | 
			
		||||
  if (clutter_stage_view_get_onscreen (view) !=
 | 
			
		||||
      clutter_stage_view_get_framebuffer (view))
 | 
			
		||||
    {
 | 
			
		||||
      clutter_stage_view_blit_offscreen (view, clip);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* This provides a common point of entry for painting the scenegraph
 | 
			
		||||
 
 | 
			
		||||
@@ -95,6 +95,7 @@ typedef struct _ClutterState            	ClutterState;
 | 
			
		||||
 | 
			
		||||
typedef struct _ClutterInputDeviceTool          ClutterInputDeviceTool;
 | 
			
		||||
typedef struct _ClutterInputDevice              ClutterInputDevice;
 | 
			
		||||
typedef struct _ClutterVirtualInputDevice       ClutterVirtualInputDevice;
 | 
			
		||||
 | 
			
		||||
typedef CoglMatrix                              ClutterMatrix;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										222
									
								
								clutter/clutter/clutter-virtual-input-device.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										222
									
								
								clutter/clutter/clutter-virtual-input-device.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,222 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Clutter.
 | 
			
		||||
 *
 | 
			
		||||
 * An OpenGL based 'interactive canvas' library.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 2016  Red Hat Inc.
 | 
			
		||||
 *
 | 
			
		||||
 * This library is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
 * License as published by the Free Software Foundation; either
 | 
			
		||||
 * version 2 of the License, or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This library is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
 * Lesser General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU Lesser General Public
 | 
			
		||||
 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 *
 | 
			
		||||
 * Author: Jonas Ådahl <jadahl@gmail.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <glib-object.h>
 | 
			
		||||
 | 
			
		||||
#include "clutter-virtual-input-device.h"
 | 
			
		||||
 | 
			
		||||
#include "clutter-device-manager.h"
 | 
			
		||||
#include "clutter-private.h"
 | 
			
		||||
#include "clutter-enum-types.h"
 | 
			
		||||
 | 
			
		||||
enum
 | 
			
		||||
{
 | 
			
		||||
  PROP_0,
 | 
			
		||||
 | 
			
		||||
  PROP_DEVICE_MANAGER,
 | 
			
		||||
  PROP_DEVICE_TYPE,
 | 
			
		||||
 | 
			
		||||
  PROP_LAST
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static GParamSpec *obj_props[PROP_LAST];
 | 
			
		||||
 | 
			
		||||
typedef struct _ClutterVirtualInputDevicePrivate
 | 
			
		||||
{
 | 
			
		||||
  ClutterDeviceManager *manager;
 | 
			
		||||
  ClutterInputDeviceType device_type;
 | 
			
		||||
} ClutterVirtualInputDevicePrivate;
 | 
			
		||||
 | 
			
		||||
G_DEFINE_TYPE_WITH_PRIVATE (ClutterVirtualInputDevice,
 | 
			
		||||
                            clutter_virtual_input_device,
 | 
			
		||||
                            G_TYPE_OBJECT)
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_virtual_input_device_notify_relative_motion (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                                     uint64_t                   time_us,
 | 
			
		||||
                                                     double                     dx,
 | 
			
		||||
                                                     double                     dy)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDeviceClass *klass =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE_GET_CLASS (virtual_device);
 | 
			
		||||
 | 
			
		||||
  klass->notify_relative_motion (virtual_device, time_us, dx, dy);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_virtual_input_device_notify_absolute_motion (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                                     uint64_t                   time_us,
 | 
			
		||||
                                                     double                     x,
 | 
			
		||||
                                                     double                     y)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDeviceClass *klass =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE_GET_CLASS (virtual_device);
 | 
			
		||||
 | 
			
		||||
  klass->notify_absolute_motion (virtual_device, time_us, x, y);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_virtual_input_device_notify_button (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                            uint64_t                   time_us,
 | 
			
		||||
                                            uint32_t                   button,
 | 
			
		||||
                                            ClutterButtonState         button_state)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDeviceClass *klass =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE_GET_CLASS (virtual_device);
 | 
			
		||||
 | 
			
		||||
  klass->notify_button (virtual_device, time_us, button, button_state);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_virtual_input_device_notify_key (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                         uint64_t                   time_us,
 | 
			
		||||
                                         uint32_t                   key,
 | 
			
		||||
                                         ClutterKeyState            key_state)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDeviceClass *klass =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE_GET_CLASS (virtual_device);
 | 
			
		||||
 | 
			
		||||
  klass->notify_key (virtual_device, time_us, key, key_state);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_virtual_input_device_notify_keyval (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                            uint64_t                   time_us,
 | 
			
		||||
                                            uint32_t                   keyval,
 | 
			
		||||
                                            ClutterKeyState            key_state)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDeviceClass *klass =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE_GET_CLASS (virtual_device);
 | 
			
		||||
 | 
			
		||||
  klass->notify_keyval (virtual_device, time_us, keyval, key_state);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * clutter_virtual_input_device_get_manager:
 | 
			
		||||
 * @virtual_device: a virtual device
 | 
			
		||||
 *
 | 
			
		||||
 * Gets the device manager of this virtual device.
 | 
			
		||||
 *
 | 
			
		||||
 * Returns: (transfer none): The #ClutterDeviceManager of this virtual device
 | 
			
		||||
 **/
 | 
			
		||||
ClutterDeviceManager *
 | 
			
		||||
clutter_virtual_input_device_get_manager (ClutterVirtualInputDevice *virtual_device)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDevicePrivate *priv =
 | 
			
		||||
    clutter_virtual_input_device_get_instance_private (virtual_device);
 | 
			
		||||
 | 
			
		||||
  return priv->manager;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
clutter_virtual_input_device_get_device_type (ClutterVirtualInputDevice *virtual_device)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDevicePrivate *priv =
 | 
			
		||||
    clutter_virtual_input_device_get_instance_private (virtual_device);
 | 
			
		||||
 | 
			
		||||
  return priv->device_type;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_virtual_input_device_get_property (GObject    *object,
 | 
			
		||||
                                           guint       prop_id,
 | 
			
		||||
                                           GValue     *value,
 | 
			
		||||
                                           GParamSpec *pspec)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDevice *virtual_device =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE (object);
 | 
			
		||||
  ClutterVirtualInputDevicePrivate *priv =
 | 
			
		||||
    clutter_virtual_input_device_get_instance_private (virtual_device);
 | 
			
		||||
 | 
			
		||||
  switch (prop_id)
 | 
			
		||||
    {
 | 
			
		||||
    case PROP_DEVICE_MANAGER:
 | 
			
		||||
      g_value_set_object (value, priv->manager);
 | 
			
		||||
      break;
 | 
			
		||||
    case PROP_DEVICE_TYPE:
 | 
			
		||||
      g_value_set_enum (value, priv->device_type);
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_virtual_input_device_set_property (GObject      *object,
 | 
			
		||||
                                           guint         prop_id,
 | 
			
		||||
                                           const GValue *value,
 | 
			
		||||
                                           GParamSpec   *pspec)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDevice *virtual_device =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE (object);
 | 
			
		||||
  ClutterVirtualInputDevicePrivate *priv =
 | 
			
		||||
    clutter_virtual_input_device_get_instance_private (virtual_device);
 | 
			
		||||
 | 
			
		||||
  switch (prop_id)
 | 
			
		||||
    {
 | 
			
		||||
    case PROP_DEVICE_MANAGER:
 | 
			
		||||
      priv->manager = g_value_get_object (value);
 | 
			
		||||
      break;
 | 
			
		||||
    case PROP_DEVICE_TYPE:
 | 
			
		||||
      priv->device_type = g_value_get_enum (value);
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_virtual_input_device_init (ClutterVirtualInputDevice *virtual_device)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_virtual_input_device_class_init (ClutterVirtualInputDeviceClass *klass)
 | 
			
		||||
{
 | 
			
		||||
  GObjectClass *object_class = G_OBJECT_CLASS (klass);
 | 
			
		||||
 | 
			
		||||
  object_class->get_property = clutter_virtual_input_device_get_property;
 | 
			
		||||
  object_class->set_property = clutter_virtual_input_device_set_property;
 | 
			
		||||
 | 
			
		||||
  obj_props[PROP_DEVICE_MANAGER] =
 | 
			
		||||
    g_param_spec_object ("device-manager",
 | 
			
		||||
                         P_("Device Manager"),
 | 
			
		||||
                         P_("The device manager instance"),
 | 
			
		||||
                         CLUTTER_TYPE_DEVICE_MANAGER,
 | 
			
		||||
                         CLUTTER_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
 | 
			
		||||
  obj_props[PROP_DEVICE_TYPE] =
 | 
			
		||||
    g_param_spec_enum ("device-type",
 | 
			
		||||
                       P_("Device type"),
 | 
			
		||||
                       P_("Device type"),
 | 
			
		||||
                       CLUTTER_TYPE_INPUT_DEVICE_TYPE,
 | 
			
		||||
                       CLUTTER_POINTER_DEVICE,
 | 
			
		||||
                       CLUTTER_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
 | 
			
		||||
 | 
			
		||||
  g_object_class_install_properties (object_class, PROP_LAST, obj_props);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										116
									
								
								clutter/clutter/clutter-virtual-input-device.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								clutter/clutter/clutter-virtual-input-device.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,116 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Clutter.
 | 
			
		||||
 *
 | 
			
		||||
 * An OpenGL based 'interactive canvas' library.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 2016  Red Hat inc.
 | 
			
		||||
 *
 | 
			
		||||
 * This library is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
 * License as published by the Free Software Foundation; either
 | 
			
		||||
 * version 2 of the License, or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This library is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
 * Lesser General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU Lesser General Public
 | 
			
		||||
 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 *
 | 
			
		||||
 * Author: Jonas Ådahl <jadahl@gmail.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef __CLUTTER_VIRTUAL_INPUT_DEVICE_H__
 | 
			
		||||
#define __CLUTTER_VIRTUAL_INPUT_DEVICE_H__
 | 
			
		||||
 | 
			
		||||
#include <glib-object.h>
 | 
			
		||||
#include <stdint.h>
 | 
			
		||||
 | 
			
		||||
#include "clutter-device-manager.h"
 | 
			
		||||
 | 
			
		||||
#define CLUTTER_TYPE_VIRTUAL_INPUT_DEVICE (clutter_virtual_input_device_get_type ())
 | 
			
		||||
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
G_DECLARE_DERIVABLE_TYPE (ClutterVirtualInputDevice,
 | 
			
		||||
                          clutter_virtual_input_device,
 | 
			
		||||
                          CLUTTER, VIRTUAL_INPUT_DEVICE,
 | 
			
		||||
                          GObject)
 | 
			
		||||
 | 
			
		||||
typedef enum _ClutterButtonState
 | 
			
		||||
{
 | 
			
		||||
  CLUTTER_BUTTON_STATE_RELEASED,
 | 
			
		||||
  CLUTTER_BUTTON_STATE_PRESSED
 | 
			
		||||
} ClutterButtonState;
 | 
			
		||||
 | 
			
		||||
typedef enum _ClutterKeyState
 | 
			
		||||
{
 | 
			
		||||
  CLUTTER_KEY_STATE_RELEASED,
 | 
			
		||||
  CLUTTER_KEY_STATE_PRESSED
 | 
			
		||||
} ClutterKeyState;
 | 
			
		||||
 | 
			
		||||
struct _ClutterVirtualInputDeviceClass
 | 
			
		||||
{
 | 
			
		||||
  GObjectClass parent_class;
 | 
			
		||||
 | 
			
		||||
  void (*notify_relative_motion) (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                  uint64_t                   time_us,
 | 
			
		||||
                                  double                     dx,
 | 
			
		||||
                                  double                     dy);
 | 
			
		||||
 | 
			
		||||
  void (*notify_absolute_motion) (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                  uint64_t                   time_us,
 | 
			
		||||
                                  double                     x,
 | 
			
		||||
                                  double                     y);
 | 
			
		||||
 | 
			
		||||
  void (*notify_button) (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                         uint64_t                   time_us,
 | 
			
		||||
                         uint32_t                   button,
 | 
			
		||||
                         ClutterButtonState         button_state);
 | 
			
		||||
 | 
			
		||||
  void (*notify_key) (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                      uint64_t                   time_us,
 | 
			
		||||
                      uint32_t                   key,
 | 
			
		||||
                      ClutterKeyState            key_state);
 | 
			
		||||
  void (*notify_keyval) (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                         uint64_t                   time_us,
 | 
			
		||||
                         uint32_t                   keyval,
 | 
			
		||||
                         ClutterKeyState            key_state);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void clutter_virtual_input_device_notify_relative_motion (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                                          uint64_t                   time_us,
 | 
			
		||||
                                                          double                     dx,
 | 
			
		||||
                                                          double                     dy);
 | 
			
		||||
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void clutter_virtual_input_device_notify_absolute_motion (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                                          uint64_t                   time_us,
 | 
			
		||||
                                                          double                     x,
 | 
			
		||||
                                                          double                     y);
 | 
			
		||||
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void clutter_virtual_input_device_notify_button (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                                 uint64_t                   time_us,
 | 
			
		||||
                                                 uint32_t                   button,
 | 
			
		||||
                                                 ClutterButtonState         button_state);
 | 
			
		||||
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void clutter_virtual_input_device_notify_key (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                              uint64_t                   time_us,
 | 
			
		||||
                                              uint32_t                   key,
 | 
			
		||||
                                              ClutterKeyState            key_state);
 | 
			
		||||
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void clutter_virtual_input_device_notify_keyval (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                                 uint64_t                   time_us,
 | 
			
		||||
                                                 uint32_t                   keyval,
 | 
			
		||||
                                                 ClutterKeyState            key_state);
 | 
			
		||||
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
ClutterDeviceManager * clutter_virtual_input_device_get_manager (ClutterVirtualInputDevice *virtual_device);
 | 
			
		||||
 | 
			
		||||
int clutter_virtual_input_device_get_device_type (ClutterVirtualInputDevice *virtual_device);
 | 
			
		||||
 | 
			
		||||
#endif /* __CLUTTER_VIRTUAL_INPUT_DEVICE_H__ */
 | 
			
		||||
@@ -107,6 +107,7 @@
 | 
			
		||||
#include "clutter-transition.h"
 | 
			
		||||
#include "clutter-units.h"
 | 
			
		||||
#include "clutter-version.h"
 | 
			
		||||
#include "clutter-virtual-input-device.h"
 | 
			
		||||
#include "clutter-zoom-action.h"
 | 
			
		||||
 | 
			
		||||
#include "clutter-deprecated.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -37,6 +37,7 @@
 | 
			
		||||
#include "clutter-stage-cogl.h"
 | 
			
		||||
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <math.h>
 | 
			
		||||
 | 
			
		||||
#include "clutter-actor-private.h"
 | 
			
		||||
#include "clutter-backend-private.h"
 | 
			
		||||
@@ -357,7 +358,7 @@ swap_framebuffer (ClutterStageWindow    *stage_window,
 | 
			
		||||
                  cairo_rectangle_int_t *swap_region,
 | 
			
		||||
                  gboolean               swap_with_damage)
 | 
			
		||||
{
 | 
			
		||||
  CoglFramebuffer *framebuffer = clutter_stage_view_get_framebuffer (view);
 | 
			
		||||
  CoglFramebuffer *framebuffer = clutter_stage_view_get_onscreen (view);
 | 
			
		||||
  int damage[4], ndamage;
 | 
			
		||||
 | 
			
		||||
  damage[0] = swap_region->x;
 | 
			
		||||
@@ -438,6 +439,42 @@ fill_current_damage_history_and_step (ClutterStageView *view)
 | 
			
		||||
  view_priv->damage_index++;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
transform_swap_region_to_onscreen (ClutterStageView      *view,
 | 
			
		||||
                                   cairo_rectangle_int_t *swap_region)
 | 
			
		||||
{
 | 
			
		||||
  CoglFramebuffer *framebuffer;
 | 
			
		||||
  cairo_rectangle_int_t layout;
 | 
			
		||||
  gfloat x1, y1, x2, y2;
 | 
			
		||||
  gint width, height;
 | 
			
		||||
 | 
			
		||||
  framebuffer = clutter_stage_view_get_onscreen (view);
 | 
			
		||||
  clutter_stage_view_get_layout (view, &layout);
 | 
			
		||||
 | 
			
		||||
  x1 = (float) swap_region->x / layout.width;
 | 
			
		||||
  y1 = (float) swap_region->y / layout.height;
 | 
			
		||||
  x2 = (float) (swap_region->x + swap_region->width) / layout.width;
 | 
			
		||||
  y2 = (float) (swap_region->y + swap_region->height) / layout.height;
 | 
			
		||||
 | 
			
		||||
  clutter_stage_view_transform_to_onscreen (view, &x1, &y1);
 | 
			
		||||
  clutter_stage_view_transform_to_onscreen (view, &x2, &y2);
 | 
			
		||||
 | 
			
		||||
  width = cogl_framebuffer_get_width (framebuffer);
 | 
			
		||||
  height = cogl_framebuffer_get_height (framebuffer);
 | 
			
		||||
 | 
			
		||||
  x1 = floor (x1 * width);
 | 
			
		||||
  y1 = floor (height - (y1 * height));
 | 
			
		||||
  x2 = ceil (x2 * width);
 | 
			
		||||
  y2 = ceil (height - (y2 * height));
 | 
			
		||||
 | 
			
		||||
  *swap_region = (cairo_rectangle_int_t) {
 | 
			
		||||
    .x = x1,
 | 
			
		||||
    .y = y1,
 | 
			
		||||
    .width = x2 - x1,
 | 
			
		||||
    .height = y2 - y1
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static gboolean
 | 
			
		||||
clutter_stage_cogl_redraw_view (ClutterStageWindow *stage_window,
 | 
			
		||||
                                ClutterStageView   *view)
 | 
			
		||||
@@ -708,6 +745,12 @@ clutter_stage_cogl_redraw_view (ClutterStageWindow *stage_window,
 | 
			
		||||
 | 
			
		||||
  if (do_swap_buffer)
 | 
			
		||||
    {
 | 
			
		||||
      if (clutter_stage_view_get_onscreen (view) !=
 | 
			
		||||
          clutter_stage_view_get_framebuffer (view))
 | 
			
		||||
        {
 | 
			
		||||
          transform_swap_region_to_onscreen (view, &swap_region);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
      return swap_framebuffer (stage_window,
 | 
			
		||||
                               view,
 | 
			
		||||
                               &swap_region,
 | 
			
		||||
 
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -24,6 +24,7 @@
 | 
			
		||||
#ifndef __CLUTTER_DEVICE_MANAGER_EVDEV_H__
 | 
			
		||||
#define __CLUTTER_DEVICE_MANAGER_EVDEV_H__
 | 
			
		||||
 | 
			
		||||
#include <clutter/clutter-backend.h>
 | 
			
		||||
#include <clutter/clutter-device-manager.h>
 | 
			
		||||
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
@@ -39,6 +40,8 @@ typedef struct _ClutterDeviceManagerEvdev         ClutterDeviceManagerEvdev;
 | 
			
		||||
typedef struct _ClutterDeviceManagerEvdevClass    ClutterDeviceManagerEvdevClass;
 | 
			
		||||
typedef struct _ClutterDeviceManagerEvdevPrivate  ClutterDeviceManagerEvdevPrivate;
 | 
			
		||||
 | 
			
		||||
typedef struct _ClutterSeatEvdev ClutterSeatEvdev;
 | 
			
		||||
 | 
			
		||||
struct _ClutterDeviceManagerEvdev
 | 
			
		||||
{
 | 
			
		||||
  ClutterDeviceManager parent_instance;
 | 
			
		||||
@@ -61,6 +64,36 @@ gint  _clutter_device_manager_evdev_acquire_device_id (ClutterDeviceManagerEvdev
 | 
			
		||||
void  _clutter_device_manager_evdev_release_device_id (ClutterDeviceManagerEvdev *manager_evdev,
 | 
			
		||||
                                                       ClutterInputDevice        *device);
 | 
			
		||||
 | 
			
		||||
struct xkb_keymap * _clutter_device_manager_evdev_get_keymap (ClutterDeviceManagerEvdev *manager_evdev);
 | 
			
		||||
 | 
			
		||||
ClutterStage * _clutter_device_manager_evdev_get_stage (ClutterDeviceManagerEvdev *manager_evdev);
 | 
			
		||||
 | 
			
		||||
void _clutter_device_manager_evdev_constrain_pointer (ClutterDeviceManagerEvdev *manager_evdev,
 | 
			
		||||
                                                      ClutterInputDevice        *core_pointer,
 | 
			
		||||
                                                      uint64_t                   time_us,
 | 
			
		||||
                                                      float                      x,
 | 
			
		||||
                                                      float                      y,
 | 
			
		||||
                                                      float                     *new_x,
 | 
			
		||||
                                                      float                     *new_y);
 | 
			
		||||
 | 
			
		||||
static inline guint64
 | 
			
		||||
us (guint64 us)
 | 
			
		||||
{
 | 
			
		||||
  return us;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline guint64
 | 
			
		||||
ms2us (guint64 ms)
 | 
			
		||||
{
 | 
			
		||||
  return us (ms * 1000);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline guint32
 | 
			
		||||
us2ms (guint64 us)
 | 
			
		||||
{
 | 
			
		||||
  return (guint32) (us / 1000);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif /* __CLUTTER_DEVICE_MANAGER_EVDEV_H__ */
 | 
			
		||||
 
 | 
			
		||||
@@ -141,13 +141,24 @@ _clutter_input_device_evdev_new (ClutterDeviceManager *manager,
 | 
			
		||||
  ClutterInputDeviceType type;
 | 
			
		||||
  ClutterDeviceManagerEvdev *manager_evdev;
 | 
			
		||||
  gchar *vendor, *product;
 | 
			
		||||
  gint device_id;
 | 
			
		||||
  gint device_id, n_rings = 0, n_strips = 0, n_groups = 1;
 | 
			
		||||
  gchar *node_path;
 | 
			
		||||
 | 
			
		||||
  type = _clutter_input_device_evdev_determine_type (libinput_device);
 | 
			
		||||
  vendor = g_strdup_printf ("%.4x", libinput_device_get_id_vendor (libinput_device));
 | 
			
		||||
  product = g_strdup_printf ("%.4x", libinput_device_get_id_product (libinput_device));
 | 
			
		||||
  manager_evdev = CLUTTER_DEVICE_MANAGER_EVDEV (manager);
 | 
			
		||||
  device_id = _clutter_device_manager_evdev_acquire_device_id (manager_evdev);
 | 
			
		||||
  node_path = g_strdup_printf ("/dev/input/%s", libinput_device_get_sysname (libinput_device));
 | 
			
		||||
 | 
			
		||||
  if (libinput_device_has_capability (libinput_device,
 | 
			
		||||
                                      LIBINPUT_DEVICE_CAP_TABLET_PAD))
 | 
			
		||||
    {
 | 
			
		||||
      n_rings = libinput_device_tablet_pad_get_num_rings (libinput_device);
 | 
			
		||||
      n_strips = libinput_device_tablet_pad_get_num_strips (libinput_device);
 | 
			
		||||
      n_groups = libinput_device_tablet_pad_get_num_mode_groups (libinput_device);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  device = g_object_new (CLUTTER_TYPE_INPUT_DEVICE_EVDEV,
 | 
			
		||||
                         "id", device_id,
 | 
			
		||||
                         "name", libinput_device_get_name (libinput_device),
 | 
			
		||||
@@ -157,6 +168,10 @@ _clutter_input_device_evdev_new (ClutterDeviceManager *manager,
 | 
			
		||||
                         "enabled", TRUE,
 | 
			
		||||
                         "vendor-id", vendor,
 | 
			
		||||
                         "product-id", product,
 | 
			
		||||
                         "n-rings", n_rings,
 | 
			
		||||
                         "n-strips", n_strips,
 | 
			
		||||
                         "n-mode-groups", n_groups,
 | 
			
		||||
                         "device-node", node_path,
 | 
			
		||||
                         NULL);
 | 
			
		||||
 | 
			
		||||
  device->seat = seat;
 | 
			
		||||
@@ -181,7 +196,8 @@ _clutter_input_device_evdev_new (ClutterDeviceManager *manager,
 | 
			
		||||
ClutterInputDevice *
 | 
			
		||||
_clutter_input_device_evdev_new_virtual (ClutterDeviceManager *manager,
 | 
			
		||||
                                         ClutterSeatEvdev *seat,
 | 
			
		||||
                                         ClutterInputDeviceType type)
 | 
			
		||||
                                         ClutterInputDeviceType type,
 | 
			
		||||
                                         ClutterInputMode mode)
 | 
			
		||||
{
 | 
			
		||||
  ClutterInputDeviceEvdev *device;
 | 
			
		||||
  ClutterDeviceManagerEvdev *manager_evdev;
 | 
			
		||||
@@ -208,7 +224,7 @@ _clutter_input_device_evdev_new_virtual (ClutterDeviceManager *manager,
 | 
			
		||||
                         "name", name,
 | 
			
		||||
                         "device-manager", manager,
 | 
			
		||||
                         "device-type", type,
 | 
			
		||||
                         "device-mode", CLUTTER_INPUT_MODE_MASTER,
 | 
			
		||||
                         "device-mode", mode,
 | 
			
		||||
                         "enabled", TRUE,
 | 
			
		||||
                         NULL);
 | 
			
		||||
 | 
			
		||||
@@ -243,6 +259,8 @@ _clutter_input_device_evdev_determine_type (struct libinput_device *ldev)
 | 
			
		||||
    return CLUTTER_TOUCHPAD_DEVICE;
 | 
			
		||||
  else if (libinput_device_has_capability (ldev, LIBINPUT_DEVICE_CAP_TABLET_TOOL))
 | 
			
		||||
    return CLUTTER_TABLET_DEVICE;
 | 
			
		||||
  else if (libinput_device_has_capability (ldev, LIBINPUT_DEVICE_CAP_TABLET_PAD))
 | 
			
		||||
    return CLUTTER_PAD_DEVICE;
 | 
			
		||||
  else if (libinput_device_has_capability (ldev, LIBINPUT_DEVICE_CAP_POINTER))
 | 
			
		||||
    return CLUTTER_POINTER_DEVICE;
 | 
			
		||||
  else if (libinput_device_has_capability (ldev, LIBINPUT_DEVICE_CAP_TOUCH))
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,8 @@
 | 
			
		||||
#include <glib-object.h>
 | 
			
		||||
#include <libinput.h>
 | 
			
		||||
 | 
			
		||||
#include <clutter/clutter-input-device.h>
 | 
			
		||||
#include "clutter/clutter-device-manager-private.h"
 | 
			
		||||
#include "evdev/clutter-seat-evdev.h"
 | 
			
		||||
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
@@ -56,7 +57,6 @@ G_BEGIN_DECLS
 | 
			
		||||
  CLUTTER_TYPE_INPUT_DEVICE_EVDEV, ClutterInputDeviceEvdevClass))
 | 
			
		||||
 | 
			
		||||
typedef struct _ClutterInputDeviceEvdev ClutterInputDeviceEvdev;
 | 
			
		||||
typedef struct _ClutterSeatEvdev ClutterSeatEvdev;
 | 
			
		||||
typedef struct _ClutterEventEvdev ClutterEventEvdev;
 | 
			
		||||
 | 
			
		||||
struct _ClutterInputDeviceEvdev
 | 
			
		||||
@@ -76,7 +76,8 @@ ClutterInputDevice *      _clutter_input_device_evdev_new             (ClutterDe
 | 
			
		||||
 | 
			
		||||
ClutterInputDevice *      _clutter_input_device_evdev_new_virtual     (ClutterDeviceManager    *manager,
 | 
			
		||||
                                                                       ClutterSeatEvdev        *seat,
 | 
			
		||||
                                                                       ClutterInputDeviceType   type);
 | 
			
		||||
                                                                       ClutterInputDeviceType   type,
 | 
			
		||||
                                                                       ClutterInputMode         mode);
 | 
			
		||||
 | 
			
		||||
ClutterSeatEvdev *        _clutter_input_device_evdev_get_seat        (ClutterInputDeviceEvdev *device);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -63,6 +63,7 @@ clutter_input_device_tool_evdev_new (struct libinput_tablet_tool *tool,
 | 
			
		||||
  evdev_tool = g_object_new (CLUTTER_TYPE_INPUT_DEVICE_TOOL_EVDEV,
 | 
			
		||||
                             "type", type,
 | 
			
		||||
                             "serial", serial,
 | 
			
		||||
                             "id", libinput_tablet_tool_get_tool_id (tool),
 | 
			
		||||
                             NULL);
 | 
			
		||||
 | 
			
		||||
  evdev_tool->tool = libinput_tablet_tool_ref (tool);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										590
									
								
								clutter/clutter/evdev/clutter-seat-evdev.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										590
									
								
								clutter/clutter/evdev/clutter-seat-evdev.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,590 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Clutter.
 | 
			
		||||
 *
 | 
			
		||||
 * An OpenGL based 'interactive canvas' library.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 2010  Intel Corp.
 | 
			
		||||
 * Copyright (C) 2014  Jonas Ådahl
 | 
			
		||||
 * Copyright (C) 2016  Red Hat Inc.
 | 
			
		||||
 *
 | 
			
		||||
 * This library is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
 * License as published by the Free Software Foundation; either
 | 
			
		||||
 * version 2 of the License, or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This library is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
 * Lesser General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU Lesser General Public
 | 
			
		||||
 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 *
 | 
			
		||||
 * Author: Damien Lespiau <damien.lespiau@intel.com>
 | 
			
		||||
 * Author: Jonas Ådahl <jadahl@gmail.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
 | 
			
		||||
#include "clutter-seat-evdev.h"
 | 
			
		||||
 | 
			
		||||
#include <linux/input.h>
 | 
			
		||||
 | 
			
		||||
#include "clutter-event-private.h"
 | 
			
		||||
#include "clutter-input-device-evdev.h"
 | 
			
		||||
#include "clutter-main.h"
 | 
			
		||||
 | 
			
		||||
/* Try to keep the pointer inside the stage. Hopefully no one is using
 | 
			
		||||
 * this backend with stages smaller than this. */
 | 
			
		||||
#define INITIAL_POINTER_X 16
 | 
			
		||||
#define INITIAL_POINTER_Y 16
 | 
			
		||||
 | 
			
		||||
#define AUTOREPEAT_VALUE 2
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_seat_evdev_set_libinput_seat (ClutterSeatEvdev     *seat,
 | 
			
		||||
                                      struct libinput_seat *libinput_seat)
 | 
			
		||||
{
 | 
			
		||||
  g_assert (seat->libinput_seat == NULL);
 | 
			
		||||
 | 
			
		||||
  libinput_seat_ref (libinput_seat);
 | 
			
		||||
  libinput_seat_set_user_data (libinput_seat, seat);
 | 
			
		||||
  seat->libinput_seat = libinput_seat;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_seat_evdev_sync_leds (ClutterSeatEvdev *seat)
 | 
			
		||||
{
 | 
			
		||||
  GSList *iter;
 | 
			
		||||
  ClutterInputDeviceEvdev *device_evdev;
 | 
			
		||||
  int caps_lock, num_lock, scroll_lock;
 | 
			
		||||
  enum libinput_led leds = 0;
 | 
			
		||||
 | 
			
		||||
  caps_lock = xkb_state_led_index_is_active (seat->xkb, seat->caps_lock_led);
 | 
			
		||||
  num_lock = xkb_state_led_index_is_active (seat->xkb, seat->num_lock_led);
 | 
			
		||||
  scroll_lock = xkb_state_led_index_is_active (seat->xkb, seat->scroll_lock_led);
 | 
			
		||||
 | 
			
		||||
  if (caps_lock)
 | 
			
		||||
    leds |= LIBINPUT_LED_CAPS_LOCK;
 | 
			
		||||
  if (num_lock)
 | 
			
		||||
    leds |= LIBINPUT_LED_NUM_LOCK;
 | 
			
		||||
  if (scroll_lock)
 | 
			
		||||
    leds |= LIBINPUT_LED_SCROLL_LOCK;
 | 
			
		||||
 | 
			
		||||
  for (iter = seat->devices; iter; iter = iter->next)
 | 
			
		||||
    {
 | 
			
		||||
      device_evdev = iter->data;
 | 
			
		||||
      _clutter_input_device_evdev_update_leds (device_evdev, leds);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_touch_state_free (ClutterTouchState *touch_state)
 | 
			
		||||
{
 | 
			
		||||
  g_slice_free (ClutterTouchState, touch_state);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ClutterTouchState *
 | 
			
		||||
clutter_seat_evdev_add_touch (ClutterSeatEvdev *seat,
 | 
			
		||||
                              guint32           id)
 | 
			
		||||
{
 | 
			
		||||
  ClutterTouchState *touch;
 | 
			
		||||
 | 
			
		||||
  touch = g_slice_new0 (ClutterTouchState);
 | 
			
		||||
  touch->id = id;
 | 
			
		||||
 | 
			
		||||
  g_hash_table_insert (seat->touches, GUINT_TO_POINTER (id), touch);
 | 
			
		||||
 | 
			
		||||
  return touch;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_seat_evdev_remove_touch (ClutterSeatEvdev *seat,
 | 
			
		||||
                                 guint32           id)
 | 
			
		||||
{
 | 
			
		||||
  g_hash_table_remove (seat->touches, GUINT_TO_POINTER (id));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ClutterTouchState *
 | 
			
		||||
clutter_seat_evdev_get_touch (ClutterSeatEvdev *seat,
 | 
			
		||||
                              guint32           id)
 | 
			
		||||
{
 | 
			
		||||
  return g_hash_table_lookup (seat->touches, GUINT_TO_POINTER (id));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ClutterSeatEvdev *
 | 
			
		||||
clutter_seat_evdev_new (ClutterDeviceManagerEvdev *manager_evdev)
 | 
			
		||||
{
 | 
			
		||||
  ClutterDeviceManager *manager = CLUTTER_DEVICE_MANAGER (manager_evdev);
 | 
			
		||||
  ClutterSeatEvdev *seat;
 | 
			
		||||
  ClutterInputDevice *device;
 | 
			
		||||
  ClutterStage *stage;
 | 
			
		||||
  struct xkb_keymap *keymap;
 | 
			
		||||
 | 
			
		||||
  seat = g_new0 (ClutterSeatEvdev, 1);
 | 
			
		||||
  if (!seat)
 | 
			
		||||
    return NULL;
 | 
			
		||||
 | 
			
		||||
  seat->manager_evdev = manager_evdev;
 | 
			
		||||
  device = _clutter_input_device_evdev_new_virtual (
 | 
			
		||||
      manager, seat, CLUTTER_POINTER_DEVICE,
 | 
			
		||||
      CLUTTER_INPUT_MODE_MASTER);
 | 
			
		||||
  stage = _clutter_device_manager_evdev_get_stage (manager_evdev);
 | 
			
		||||
  _clutter_input_device_set_stage (device, stage);
 | 
			
		||||
  seat->pointer_x = INITIAL_POINTER_X;
 | 
			
		||||
  seat->pointer_y = INITIAL_POINTER_Y;
 | 
			
		||||
  _clutter_input_device_set_coords (device, NULL,
 | 
			
		||||
                                    seat->pointer_x, seat->pointer_y,
 | 
			
		||||
                                    NULL);
 | 
			
		||||
  _clutter_device_manager_add_device (manager, device);
 | 
			
		||||
  seat->core_pointer = device;
 | 
			
		||||
 | 
			
		||||
  device = _clutter_input_device_evdev_new_virtual (
 | 
			
		||||
      manager, seat, CLUTTER_KEYBOARD_DEVICE,
 | 
			
		||||
      CLUTTER_INPUT_MODE_MASTER);
 | 
			
		||||
  _clutter_input_device_set_stage (device, stage);
 | 
			
		||||
  _clutter_device_manager_add_device (manager, device);
 | 
			
		||||
  seat->core_keyboard = device;
 | 
			
		||||
 | 
			
		||||
  seat->touches = g_hash_table_new_full (NULL, NULL, NULL,
 | 
			
		||||
                                         (GDestroyNotify) clutter_touch_state_free);
 | 
			
		||||
 | 
			
		||||
  seat->repeat = TRUE;
 | 
			
		||||
  seat->repeat_delay = 250;     /* ms */
 | 
			
		||||
  seat->repeat_interval = 33;   /* ms */
 | 
			
		||||
 | 
			
		||||
  keymap = _clutter_device_manager_evdev_get_keymap (manager_evdev);
 | 
			
		||||
  if (keymap)
 | 
			
		||||
    {
 | 
			
		||||
      seat->xkb = xkb_state_new (keymap);
 | 
			
		||||
 | 
			
		||||
      seat->caps_lock_led =
 | 
			
		||||
        xkb_keymap_led_get_index (keymap, XKB_LED_NAME_CAPS);
 | 
			
		||||
      seat->num_lock_led =
 | 
			
		||||
        xkb_keymap_led_get_index (keymap, XKB_LED_NAME_NUM);
 | 
			
		||||
      seat->scroll_lock_led =
 | 
			
		||||
        xkb_keymap_led_get_index (keymap, XKB_LED_NAME_SCROLL);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  return seat;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_seat_evdev_clear_repeat_timer (ClutterSeatEvdev *seat)
 | 
			
		||||
{
 | 
			
		||||
  if (seat->repeat_timer)
 | 
			
		||||
    {
 | 
			
		||||
      g_source_remove (seat->repeat_timer);
 | 
			
		||||
      seat->repeat_timer = 0;
 | 
			
		||||
      g_clear_object (&seat->repeat_device);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static gboolean
 | 
			
		||||
keyboard_repeat (gpointer data)
 | 
			
		||||
{
 | 
			
		||||
  ClutterSeatEvdev *seat = data;
 | 
			
		||||
  GSource *source;
 | 
			
		||||
  guint32 time_ms;
 | 
			
		||||
 | 
			
		||||
  g_return_val_if_fail (seat->repeat_device != NULL, G_SOURCE_REMOVE);
 | 
			
		||||
  source = g_main_context_find_source_by_id (NULL, seat->repeat_timer);
 | 
			
		||||
  time_ms = g_source_get_time (source) / 1000;
 | 
			
		||||
 | 
			
		||||
  clutter_seat_evdev_notify_key (seat,
 | 
			
		||||
                                 seat->repeat_device,
 | 
			
		||||
                                 ms2us (time_ms),
 | 
			
		||||
                                 seat->repeat_key,
 | 
			
		||||
                                 AUTOREPEAT_VALUE,
 | 
			
		||||
                                 FALSE);
 | 
			
		||||
 | 
			
		||||
  return G_SOURCE_CONTINUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
queue_event (ClutterEvent *event)
 | 
			
		||||
{
 | 
			
		||||
  _clutter_event_push (event, FALSE);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
update_button_count (ClutterSeatEvdev *seat,
 | 
			
		||||
                     uint32_t          button,
 | 
			
		||||
                     uint32_t          state)
 | 
			
		||||
{
 | 
			
		||||
  if (state)
 | 
			
		||||
    {
 | 
			
		||||
      return ++seat->button_count[button];
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
    {
 | 
			
		||||
      /* Handle cases where we newer saw the initial pressed event. */
 | 
			
		||||
      if (seat->button_count[button] == 0)
 | 
			
		||||
        return 0;
 | 
			
		||||
 | 
			
		||||
      return --seat->button_count[button];
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_seat_evdev_notify_key (ClutterSeatEvdev   *seat,
 | 
			
		||||
                               ClutterInputDevice *device,
 | 
			
		||||
                               uint64_t            time_us,
 | 
			
		||||
                               uint32_t            key,
 | 
			
		||||
                               uint32_t            state,
 | 
			
		||||
                               gboolean            update_keys)
 | 
			
		||||
{
 | 
			
		||||
  ClutterStage *stage;
 | 
			
		||||
  ClutterEvent *event = NULL;
 | 
			
		||||
  enum xkb_state_component changed_state;
 | 
			
		||||
 | 
			
		||||
  if (state != AUTOREPEAT_VALUE)
 | 
			
		||||
    {
 | 
			
		||||
      /* Drop any repeated button press (for example from virtual devices. */
 | 
			
		||||
      int count = update_button_count (seat, key, state);
 | 
			
		||||
      if (state && count > 1)
 | 
			
		||||
        return;
 | 
			
		||||
      if (!state && count != 0)
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  /* We can drop the event on the floor if no stage has been
 | 
			
		||||
   * associated with the device yet. */
 | 
			
		||||
  stage = _clutter_input_device_get_stage (device);
 | 
			
		||||
  if (stage == NULL)
 | 
			
		||||
    {
 | 
			
		||||
      clutter_seat_evdev_clear_repeat_timer (seat);
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  event = _clutter_key_event_new_from_evdev (device,
 | 
			
		||||
					     seat->core_keyboard,
 | 
			
		||||
					     stage,
 | 
			
		||||
					     seat->xkb,
 | 
			
		||||
					     seat->button_state,
 | 
			
		||||
					     us2ms (time_us), key, state);
 | 
			
		||||
  _clutter_evdev_event_set_event_code (event, key);
 | 
			
		||||
 | 
			
		||||
  /* We must be careful and not pass multiple releases to xkb, otherwise it gets
 | 
			
		||||
     confused and locks the modifiers */
 | 
			
		||||
  if (state != AUTOREPEAT_VALUE)
 | 
			
		||||
    {
 | 
			
		||||
      changed_state = xkb_state_update_key (seat->xkb,
 | 
			
		||||
                                            event->key.hardware_keycode,
 | 
			
		||||
                                            state ? XKB_KEY_DOWN : XKB_KEY_UP);
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
    {
 | 
			
		||||
      changed_state = 0;
 | 
			
		||||
      clutter_event_set_flags (event, CLUTTER_EVENT_FLAG_SYNTHETIC);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  queue_event (event);
 | 
			
		||||
 | 
			
		||||
  if (update_keys && (changed_state & XKB_STATE_LEDS))
 | 
			
		||||
    clutter_seat_evdev_sync_leds (seat);
 | 
			
		||||
 | 
			
		||||
  if (state == 0 ||             /* key release */
 | 
			
		||||
      !seat->repeat ||
 | 
			
		||||
      !xkb_keymap_key_repeats (xkb_state_get_keymap (seat->xkb),
 | 
			
		||||
                               event->key.hardware_keycode))
 | 
			
		||||
    {
 | 
			
		||||
      clutter_seat_evdev_clear_repeat_timer (seat);
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  if (state == 1)               /* key press */
 | 
			
		||||
    seat->repeat_count = 0;
 | 
			
		||||
 | 
			
		||||
  seat->repeat_count += 1;
 | 
			
		||||
  seat->repeat_key = key;
 | 
			
		||||
 | 
			
		||||
  switch (seat->repeat_count)
 | 
			
		||||
    {
 | 
			
		||||
    case 1:
 | 
			
		||||
    case 2:
 | 
			
		||||
      {
 | 
			
		||||
        guint32 interval;
 | 
			
		||||
 | 
			
		||||
        clutter_seat_evdev_clear_repeat_timer (seat);
 | 
			
		||||
        seat->repeat_device = g_object_ref (device);
 | 
			
		||||
 | 
			
		||||
        if (seat->repeat_count == 1)
 | 
			
		||||
          interval = seat->repeat_delay;
 | 
			
		||||
        else
 | 
			
		||||
          interval = seat->repeat_interval;
 | 
			
		||||
 | 
			
		||||
        seat->repeat_timer =
 | 
			
		||||
          clutter_threads_add_timeout_full (CLUTTER_PRIORITY_EVENTS,
 | 
			
		||||
                                            interval,
 | 
			
		||||
                                            keyboard_repeat,
 | 
			
		||||
                                            seat,
 | 
			
		||||
                                            NULL);
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
    default:
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static ClutterEvent *
 | 
			
		||||
new_absolute_motion_event (ClutterSeatEvdev   *seat,
 | 
			
		||||
                           ClutterInputDevice *input_device,
 | 
			
		||||
                           guint64             time_us,
 | 
			
		||||
                           gfloat              x,
 | 
			
		||||
                           gfloat              y,
 | 
			
		||||
                           gdouble            *axes)
 | 
			
		||||
{
 | 
			
		||||
  ClutterStage *stage = _clutter_input_device_get_stage (input_device);
 | 
			
		||||
  ClutterEvent *event;
 | 
			
		||||
 | 
			
		||||
  event = clutter_event_new (CLUTTER_MOTION);
 | 
			
		||||
 | 
			
		||||
  if (clutter_input_device_get_device_type (input_device) != CLUTTER_TABLET_DEVICE)
 | 
			
		||||
    _clutter_device_manager_evdev_constrain_pointer (seat->manager_evdev,
 | 
			
		||||
                                                     seat->core_pointer,
 | 
			
		||||
                                                     time_us,
 | 
			
		||||
                                                     seat->pointer_x,
 | 
			
		||||
                                                     seat->pointer_y,
 | 
			
		||||
                                                     &x, &y);
 | 
			
		||||
 | 
			
		||||
  _clutter_evdev_event_set_time_usec (event, time_us);
 | 
			
		||||
  event->motion.time = us2ms (time_us);
 | 
			
		||||
  event->motion.stage = stage;
 | 
			
		||||
  event->motion.device = seat->core_pointer;
 | 
			
		||||
  _clutter_xkb_translate_state (event, seat->xkb, seat->button_state);
 | 
			
		||||
  event->motion.x = x;
 | 
			
		||||
  event->motion.y = y;
 | 
			
		||||
  event->motion.axes = axes;
 | 
			
		||||
  clutter_event_set_device (event, seat->core_pointer);
 | 
			
		||||
  clutter_event_set_source_device (event, input_device);
 | 
			
		||||
 | 
			
		||||
  if (clutter_input_device_get_device_type (input_device) == CLUTTER_TABLET_DEVICE)
 | 
			
		||||
    {
 | 
			
		||||
      ClutterInputDeviceEvdev *device_evdev =
 | 
			
		||||
        CLUTTER_INPUT_DEVICE_EVDEV (input_device);
 | 
			
		||||
 | 
			
		||||
      clutter_event_set_device_tool (event, device_evdev->last_tool);
 | 
			
		||||
      clutter_event_set_device (event, input_device);
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
    {
 | 
			
		||||
      clutter_event_set_device (event, seat->core_pointer);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  _clutter_input_device_set_stage (seat->core_pointer, stage);
 | 
			
		||||
 | 
			
		||||
  if (clutter_input_device_get_device_type (input_device) != CLUTTER_TABLET_DEVICE)
 | 
			
		||||
    {
 | 
			
		||||
      seat->pointer_x = x;
 | 
			
		||||
      seat->pointer_y = y;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  return event;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_seat_evdev_notify_relative_motion (ClutterSeatEvdev   *seat,
 | 
			
		||||
                                           ClutterInputDevice *input_device,
 | 
			
		||||
                                           uint64_t            time_us,
 | 
			
		||||
                                           float               dx,
 | 
			
		||||
                                           float               dy,
 | 
			
		||||
                                           float               dx_unaccel,
 | 
			
		||||
                                           float               dy_unaccel)
 | 
			
		||||
{
 | 
			
		||||
  gfloat new_x, new_y;
 | 
			
		||||
  ClutterEvent *event;
 | 
			
		||||
 | 
			
		||||
  /* We can drop the event on the floor if no stage has been
 | 
			
		||||
   * associated with the device yet. */
 | 
			
		||||
  if (!_clutter_input_device_get_stage (input_device))
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  new_x = seat->pointer_x + dx;
 | 
			
		||||
  new_y = seat->pointer_y + dy;
 | 
			
		||||
  event = new_absolute_motion_event (seat, input_device,
 | 
			
		||||
                                     time_us, new_x, new_y, NULL);
 | 
			
		||||
 | 
			
		||||
  _clutter_evdev_event_set_relative_motion (event,
 | 
			
		||||
                                            dx, dy,
 | 
			
		||||
                                            dx_unaccel, dy_unaccel);
 | 
			
		||||
 | 
			
		||||
  queue_event (event);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void clutter_seat_evdev_notify_absolute_motion (ClutterSeatEvdev   *seat,
 | 
			
		||||
                                                ClutterInputDevice *input_device,
 | 
			
		||||
                                                uint64_t            time_us,
 | 
			
		||||
                                                float               x,
 | 
			
		||||
                                                float               y,
 | 
			
		||||
                                                double             *axes)
 | 
			
		||||
{
 | 
			
		||||
  ClutterEvent *event;
 | 
			
		||||
 | 
			
		||||
  event = new_absolute_motion_event (seat, input_device, time_us, x, x, axes);
 | 
			
		||||
 | 
			
		||||
  queue_event (event);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_seat_evdev_notify_button (ClutterSeatEvdev   *seat,
 | 
			
		||||
                                  ClutterInputDevice *input_device,
 | 
			
		||||
                                  uint64_t            time_us,
 | 
			
		||||
                                  uint32_t            button,
 | 
			
		||||
                                  uint32_t            state)
 | 
			
		||||
{
 | 
			
		||||
  ClutterStage *stage;
 | 
			
		||||
  ClutterEvent *event = NULL;
 | 
			
		||||
  gint button_nr;
 | 
			
		||||
  static gint maskmap[8] =
 | 
			
		||||
    {
 | 
			
		||||
      CLUTTER_BUTTON1_MASK, CLUTTER_BUTTON3_MASK, CLUTTER_BUTTON2_MASK,
 | 
			
		||||
      CLUTTER_BUTTON4_MASK, CLUTTER_BUTTON5_MASK, 0, 0, 0
 | 
			
		||||
    };
 | 
			
		||||
  int button_count;
 | 
			
		||||
 | 
			
		||||
  /* Drop any repeated button press (for example from virtual devices. */
 | 
			
		||||
  button_count = update_button_count (seat, button, state);
 | 
			
		||||
  if (state && button_count > 1)
 | 
			
		||||
    return;
 | 
			
		||||
  if (!state && button_count != 0)
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  /* We can drop the event on the floor if no stage has been
 | 
			
		||||
   * associated with the device yet. */
 | 
			
		||||
  stage = _clutter_input_device_get_stage (input_device);
 | 
			
		||||
  if (stage == NULL)
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  /* The evdev button numbers don't map sequentially to clutter button
 | 
			
		||||
   * numbers (the right and middle mouse buttons are in the opposite
 | 
			
		||||
   * order) so we'll map them directly with a switch statement */
 | 
			
		||||
  switch (button)
 | 
			
		||||
    {
 | 
			
		||||
    case BTN_LEFT:
 | 
			
		||||
    case BTN_TOUCH:
 | 
			
		||||
      button_nr = CLUTTER_BUTTON_PRIMARY;
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case BTN_RIGHT:
 | 
			
		||||
    case BTN_STYLUS:
 | 
			
		||||
      button_nr = CLUTTER_BUTTON_SECONDARY;
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case BTN_MIDDLE:
 | 
			
		||||
    case BTN_STYLUS2:
 | 
			
		||||
      button_nr = CLUTTER_BUTTON_MIDDLE;
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    default:
 | 
			
		||||
      /* For compatibility reasons, all additional buttons go after the old 4-7 scroll ones */
 | 
			
		||||
      if (clutter_input_device_get_device_type (input_device) == CLUTTER_TABLET_DEVICE)
 | 
			
		||||
        button_nr = button - BTN_TOOL_PEN + 4;
 | 
			
		||||
      else
 | 
			
		||||
        button_nr = button - (BTN_LEFT - 1) + 4;
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  if (button_nr < 1 || button_nr > 12)
 | 
			
		||||
    {
 | 
			
		||||
      g_warning ("Unhandled button event 0x%x", button);
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  if (state)
 | 
			
		||||
    event = clutter_event_new (CLUTTER_BUTTON_PRESS);
 | 
			
		||||
  else
 | 
			
		||||
    event = clutter_event_new (CLUTTER_BUTTON_RELEASE);
 | 
			
		||||
 | 
			
		||||
  if (button_nr < G_N_ELEMENTS (maskmap))
 | 
			
		||||
    {
 | 
			
		||||
      /* Update the modifiers */
 | 
			
		||||
      if (state)
 | 
			
		||||
        seat->button_state |= maskmap[button_nr - 1];
 | 
			
		||||
      else
 | 
			
		||||
        seat->button_state &= ~maskmap[button_nr - 1];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  _clutter_evdev_event_set_time_usec (event, time_us);
 | 
			
		||||
  event->button.time = us2ms (time_us);
 | 
			
		||||
  event->button.stage = CLUTTER_STAGE (stage);
 | 
			
		||||
  _clutter_xkb_translate_state (event, seat->xkb, seat->button_state);
 | 
			
		||||
  event->button.button = button_nr;
 | 
			
		||||
 | 
			
		||||
  if (clutter_input_device_get_device_type (input_device) == CLUTTER_TABLET_DEVICE)
 | 
			
		||||
    {
 | 
			
		||||
      ClutterPoint point;
 | 
			
		||||
 | 
			
		||||
      clutter_input_device_get_coords (input_device, NULL, &point);
 | 
			
		||||
      event->button.x = point.x;
 | 
			
		||||
      event->button.y = point.y;
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
    {
 | 
			
		||||
      event->button.x = seat->pointer_x;
 | 
			
		||||
      event->button.y = seat->pointer_y;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  clutter_event_set_device (event, seat->core_pointer);
 | 
			
		||||
  clutter_event_set_source_device (event, input_device);
 | 
			
		||||
 | 
			
		||||
  _clutter_evdev_event_set_event_code (event, button);
 | 
			
		||||
 | 
			
		||||
  if (clutter_input_device_get_device_type (input_device) == CLUTTER_TABLET_DEVICE)
 | 
			
		||||
    {
 | 
			
		||||
      ClutterInputDeviceEvdev *device_evdev =
 | 
			
		||||
        CLUTTER_INPUT_DEVICE_EVDEV (input_device);
 | 
			
		||||
 | 
			
		||||
      clutter_event_set_device_tool (event, device_evdev->last_tool);
 | 
			
		||||
      clutter_event_set_device (event, input_device);
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
    {
 | 
			
		||||
      clutter_event_set_device (event, seat->core_pointer);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  _clutter_input_device_set_stage (seat->core_pointer, stage);
 | 
			
		||||
 | 
			
		||||
  queue_event (event);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_seat_evdev_free (ClutterSeatEvdev *seat)
 | 
			
		||||
{
 | 
			
		||||
  GSList *iter;
 | 
			
		||||
 | 
			
		||||
  for (iter = seat->devices; iter; iter = g_slist_next (iter))
 | 
			
		||||
    {
 | 
			
		||||
      ClutterInputDevice *device = iter->data;
 | 
			
		||||
 | 
			
		||||
      g_object_unref (device);
 | 
			
		||||
    }
 | 
			
		||||
  g_slist_free (seat->devices);
 | 
			
		||||
  g_hash_table_unref (seat->touches);
 | 
			
		||||
 | 
			
		||||
  xkb_state_unref (seat->xkb);
 | 
			
		||||
 | 
			
		||||
  clutter_seat_evdev_clear_repeat_timer (seat);
 | 
			
		||||
 | 
			
		||||
  if (seat->libinput_seat)
 | 
			
		||||
    libinput_seat_unref (seat->libinput_seat);
 | 
			
		||||
 | 
			
		||||
  g_free (seat);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_seat_evdev_set_stage (ClutterSeatEvdev *seat,
 | 
			
		||||
                              ClutterStage     *stage)
 | 
			
		||||
{
 | 
			
		||||
  GSList *l;
 | 
			
		||||
 | 
			
		||||
  _clutter_input_device_set_stage (seat->core_pointer, stage);
 | 
			
		||||
  _clutter_input_device_set_stage (seat->core_keyboard, stage);
 | 
			
		||||
 | 
			
		||||
  for (l = seat->devices; l; l = l->next)
 | 
			
		||||
    {
 | 
			
		||||
      ClutterInputDevice *device = l->data;
 | 
			
		||||
 | 
			
		||||
      _clutter_input_device_set_stage (device, stage);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										132
									
								
								clutter/clutter/evdev/clutter-seat-evdev.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										132
									
								
								clutter/clutter/evdev/clutter-seat-evdev.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,132 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Clutter.
 | 
			
		||||
 *
 | 
			
		||||
 * An OpenGL based 'interactive canvas' library.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 2010  Intel Corp.
 | 
			
		||||
 * Copyright (C) 2014  Jonas Ådahl
 | 
			
		||||
 * Copyright (C) 2016  Red Hat Inc.
 | 
			
		||||
 *
 | 
			
		||||
 * This library is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
 * License as published by the Free Software Foundation; either
 | 
			
		||||
 * version 2 of the License, or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This library is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
 * Lesser General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU Lesser General Public
 | 
			
		||||
 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 *
 | 
			
		||||
 * Author: Damien Lespiau <damien.lespiau@intel.com>
 | 
			
		||||
 * Author: Jonas Ådahl <jadahl@gmail.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef __CLUTTER_SEAT_EVDEV_H__
 | 
			
		||||
#define __CLUTTER_SEAT_EVDEV_H__
 | 
			
		||||
 | 
			
		||||
#include <libinput.h>
 | 
			
		||||
#include <linux/input.h>
 | 
			
		||||
 | 
			
		||||
#include "clutter-input-device.h"
 | 
			
		||||
#include "clutter-device-manager-evdev.h"
 | 
			
		||||
#include "clutter-xkb-utils.h"
 | 
			
		||||
 | 
			
		||||
typedef struct _ClutterTouchState ClutterTouchState;
 | 
			
		||||
 | 
			
		||||
struct _ClutterTouchState
 | 
			
		||||
{
 | 
			
		||||
  guint32 id;
 | 
			
		||||
  ClutterPoint coords;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct _ClutterSeatEvdev
 | 
			
		||||
{
 | 
			
		||||
  struct libinput_seat *libinput_seat;
 | 
			
		||||
  ClutterDeviceManagerEvdev *manager_evdev;
 | 
			
		||||
 | 
			
		||||
  GSList *devices;
 | 
			
		||||
 | 
			
		||||
  ClutterInputDevice *core_pointer;
 | 
			
		||||
  ClutterInputDevice *core_keyboard;
 | 
			
		||||
 | 
			
		||||
  GHashTable *touches;
 | 
			
		||||
 | 
			
		||||
  struct xkb_state *xkb;
 | 
			
		||||
  xkb_led_index_t caps_lock_led;
 | 
			
		||||
  xkb_led_index_t num_lock_led;
 | 
			
		||||
  xkb_led_index_t scroll_lock_led;
 | 
			
		||||
  uint32_t button_state;
 | 
			
		||||
  int button_count[KEY_CNT];
 | 
			
		||||
 | 
			
		||||
  /* keyboard repeat */
 | 
			
		||||
  gboolean repeat;
 | 
			
		||||
  guint32 repeat_delay;
 | 
			
		||||
  guint32 repeat_interval;
 | 
			
		||||
  guint32 repeat_key;
 | 
			
		||||
  guint32 repeat_count;
 | 
			
		||||
  guint32 repeat_timer;
 | 
			
		||||
  ClutterInputDevice *repeat_device;
 | 
			
		||||
 | 
			
		||||
  gfloat pointer_x;
 | 
			
		||||
  gfloat pointer_y;
 | 
			
		||||
 | 
			
		||||
  /* Emulation of discrete scroll events out of smooth ones */
 | 
			
		||||
  gfloat accum_scroll_dx;
 | 
			
		||||
  gfloat accum_scroll_dy;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void clutter_seat_evdev_notify_key (ClutterSeatEvdev   *seat,
 | 
			
		||||
                                    ClutterInputDevice *device,
 | 
			
		||||
                                    uint64_t            time_us,
 | 
			
		||||
                                    uint32_t            key,
 | 
			
		||||
                                    uint32_t            state,
 | 
			
		||||
                                    gboolean            update_keys);
 | 
			
		||||
 | 
			
		||||
void clutter_seat_evdev_notify_relative_motion (ClutterSeatEvdev   *seat_evdev,
 | 
			
		||||
                                                ClutterInputDevice *input_device,
 | 
			
		||||
                                                uint64_t            time_us,
 | 
			
		||||
                                                float               dx,
 | 
			
		||||
                                                float               dy,
 | 
			
		||||
                                                float               dx_unaccel,
 | 
			
		||||
                                                float               dy_unaccel);
 | 
			
		||||
 | 
			
		||||
void clutter_seat_evdev_notify_absolute_motion (ClutterSeatEvdev   *seat_evdev,
 | 
			
		||||
                                                ClutterInputDevice *input_device,
 | 
			
		||||
                                                uint64_t            time_us,
 | 
			
		||||
                                                float               x,
 | 
			
		||||
                                                float               y,
 | 
			
		||||
                                                double             *axes);
 | 
			
		||||
 | 
			
		||||
void clutter_seat_evdev_notify_button (ClutterSeatEvdev   *seat,
 | 
			
		||||
                                       ClutterInputDevice *input_device,
 | 
			
		||||
                                       uint64_t            time_us,
 | 
			
		||||
                                       uint32_t            button,
 | 
			
		||||
                                       uint32_t            state);
 | 
			
		||||
 | 
			
		||||
void clutter_seat_evdev_set_libinput_seat (ClutterSeatEvdev     *seat,
 | 
			
		||||
                                           struct libinput_seat *libinput_seat);
 | 
			
		||||
 | 
			
		||||
void clutter_seat_evdev_sync_leds (ClutterSeatEvdev *seat);
 | 
			
		||||
 | 
			
		||||
ClutterTouchState * clutter_seat_evdev_add_touch (ClutterSeatEvdev *seat,
 | 
			
		||||
                                                  guint32           id);
 | 
			
		||||
 | 
			
		||||
void clutter_seat_evdev_remove_touch (ClutterSeatEvdev *seat,
 | 
			
		||||
                                      guint32           id);
 | 
			
		||||
 | 
			
		||||
ClutterTouchState * clutter_seat_evdev_get_touch (ClutterSeatEvdev *seat,
 | 
			
		||||
                                                  guint32           id);
 | 
			
		||||
 | 
			
		||||
void clutter_seat_evdev_set_stage (ClutterSeatEvdev *seat,
 | 
			
		||||
                                   ClutterStage     *stage);
 | 
			
		||||
 | 
			
		||||
void clutter_seat_evdev_clear_repeat_timer (ClutterSeatEvdev *seat);
 | 
			
		||||
 | 
			
		||||
ClutterSeatEvdev * clutter_seat_evdev_new (ClutterDeviceManagerEvdev *manager_evdev);
 | 
			
		||||
 | 
			
		||||
void clutter_seat_evdev_free (ClutterSeatEvdev *seat);
 | 
			
		||||
 | 
			
		||||
#endif /* __CLUTTER_SEAT_EVDEV_H__ */
 | 
			
		||||
							
								
								
									
										495
									
								
								clutter/clutter/evdev/clutter-virtual-input-device-evdev.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										495
									
								
								clutter/clutter/evdev/clutter-virtual-input-device-evdev.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,495 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Clutter.
 | 
			
		||||
 *
 | 
			
		||||
 * An OpenGL based 'interactive canvas' library.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 2016  Red Hat Inc.
 | 
			
		||||
 *
 | 
			
		||||
 * This library is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
 * License as published by the Free Software Foundation; either
 | 
			
		||||
 * version 2 of the License, or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This library is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
 * Lesser General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU Lesser General Public
 | 
			
		||||
 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 *
 | 
			
		||||
 * Author: Jonas Ådahl <jadahl@gmail.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <glib-object.h>
 | 
			
		||||
#include <linux/input.h>
 | 
			
		||||
 | 
			
		||||
#include "clutter-private.h"
 | 
			
		||||
#include "clutter-virtual-input-device.h"
 | 
			
		||||
#include "evdev/clutter-input-device-evdev.h"
 | 
			
		||||
#include "evdev/clutter-seat-evdev.h"
 | 
			
		||||
#include "evdev/clutter-virtual-input-device-evdev.h"
 | 
			
		||||
 | 
			
		||||
enum
 | 
			
		||||
{
 | 
			
		||||
  PROP_0,
 | 
			
		||||
 | 
			
		||||
  PROP_SEAT,
 | 
			
		||||
 | 
			
		||||
  PROP_LAST
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static GParamSpec *obj_props[PROP_LAST];
 | 
			
		||||
 | 
			
		||||
struct _ClutterVirtualInputDeviceEvdev
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDevice parent;
 | 
			
		||||
 | 
			
		||||
  ClutterInputDevice *device;
 | 
			
		||||
  ClutterSeatEvdev *seat;
 | 
			
		||||
  int button_count[KEY_CNT];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
G_DEFINE_TYPE (ClutterVirtualInputDeviceEvdev,
 | 
			
		||||
               clutter_virtual_input_device_evdev,
 | 
			
		||||
               CLUTTER_TYPE_VIRTUAL_INPUT_DEVICE)
 | 
			
		||||
 | 
			
		||||
typedef enum _EvdevButtonType
 | 
			
		||||
{
 | 
			
		||||
  EVDEV_BUTTON_TYPE_NONE,
 | 
			
		||||
  EVDEV_BUTTON_TYPE_KEY,
 | 
			
		||||
  EVDEV_BUTTON_TYPE_BUTTON,
 | 
			
		||||
} EvdevButtonType;
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
update_button_count (ClutterVirtualInputDeviceEvdev *virtual_evdev,
 | 
			
		||||
                     uint32_t                        button,
 | 
			
		||||
                     uint32_t                        state)
 | 
			
		||||
{
 | 
			
		||||
  if (state)
 | 
			
		||||
    return ++virtual_evdev->button_count[button];
 | 
			
		||||
  else
 | 
			
		||||
    return --virtual_evdev->button_count[button];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static EvdevButtonType
 | 
			
		||||
get_button_type (uint16_t code)
 | 
			
		||||
{
 | 
			
		||||
  switch (code)
 | 
			
		||||
    {
 | 
			
		||||
    case BTN_TOOL_PEN:
 | 
			
		||||
    case BTN_TOOL_RUBBER:
 | 
			
		||||
    case BTN_TOOL_BRUSH:
 | 
			
		||||
    case BTN_TOOL_PENCIL:
 | 
			
		||||
    case BTN_TOOL_AIRBRUSH:
 | 
			
		||||
    case BTN_TOOL_MOUSE:
 | 
			
		||||
    case BTN_TOOL_LENS:
 | 
			
		||||
    case BTN_TOOL_QUINTTAP:
 | 
			
		||||
    case BTN_TOOL_DOUBLETAP:
 | 
			
		||||
    case BTN_TOOL_TRIPLETAP:
 | 
			
		||||
    case BTN_TOOL_QUADTAP:
 | 
			
		||||
    case BTN_TOOL_FINGER:
 | 
			
		||||
    case BTN_TOUCH:
 | 
			
		||||
      return EVDEV_BUTTON_TYPE_NONE;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  if (code >= KEY_ESC && code <= KEY_MICMUTE)
 | 
			
		||||
    return EVDEV_BUTTON_TYPE_KEY;
 | 
			
		||||
  if (code >= BTN_MISC && code <= BTN_GEAR_UP)
 | 
			
		||||
    return EVDEV_BUTTON_TYPE_BUTTON;
 | 
			
		||||
  if (code >= KEY_OK && code <= KEY_LIGHTS_TOGGLE)
 | 
			
		||||
    return EVDEV_BUTTON_TYPE_KEY;
 | 
			
		||||
  if (code >= BTN_DPAD_UP && code <= BTN_DPAD_RIGHT)
 | 
			
		||||
    return EVDEV_BUTTON_TYPE_BUTTON;
 | 
			
		||||
  if (code >= KEY_ALS_TOGGLE && code <= KEY_KBDINPUTASSIST_CANCEL)
 | 
			
		||||
    return EVDEV_BUTTON_TYPE_KEY;
 | 
			
		||||
  if (code >= BTN_TRIGGER_HAPPY && code <= BTN_TRIGGER_HAPPY40)
 | 
			
		||||
    return EVDEV_BUTTON_TYPE_BUTTON;
 | 
			
		||||
  return EVDEV_BUTTON_TYPE_NONE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
release_pressed_buttons (ClutterVirtualInputDevice *virtual_device)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDeviceEvdev *virtual_evdev =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE_EVDEV (virtual_device);
 | 
			
		||||
  int code;
 | 
			
		||||
  uint64_t time_us;
 | 
			
		||||
 | 
			
		||||
  time_us = g_get_monotonic_time ();
 | 
			
		||||
 | 
			
		||||
  for (code = 0; code < G_N_ELEMENTS (virtual_evdev->button_count); code++)
 | 
			
		||||
    {
 | 
			
		||||
      if (virtual_evdev->button_count[code] == 0)
 | 
			
		||||
        continue;
 | 
			
		||||
 | 
			
		||||
      switch (get_button_type (code))
 | 
			
		||||
        {
 | 
			
		||||
        case EVDEV_BUTTON_TYPE_KEY:
 | 
			
		||||
          clutter_virtual_input_device_notify_key (virtual_device,
 | 
			
		||||
                                                   time_us,
 | 
			
		||||
                                                   code,
 | 
			
		||||
                                                   CLUTTER_KEY_STATE_RELEASED);
 | 
			
		||||
          break;
 | 
			
		||||
        case EVDEV_BUTTON_TYPE_BUTTON:
 | 
			
		||||
          clutter_virtual_input_device_notify_button (virtual_device,
 | 
			
		||||
                                                      time_us,
 | 
			
		||||
                                                      code,
 | 
			
		||||
                                                      CLUTTER_BUTTON_STATE_RELEASED);
 | 
			
		||||
          break;
 | 
			
		||||
        case EVDEV_BUTTON_TYPE_NONE:
 | 
			
		||||
          g_assert_not_reached ();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_virtual_input_device_evdev_notify_relative_motion (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                                           uint64_t                   time_us,
 | 
			
		||||
                                                           double                     dx,
 | 
			
		||||
                                                           double                     dy)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDeviceEvdev *virtual_evdev =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE_EVDEV (virtual_device);
 | 
			
		||||
 | 
			
		||||
  clutter_seat_evdev_notify_relative_motion (virtual_evdev->seat,
 | 
			
		||||
                                             virtual_evdev->device,
 | 
			
		||||
                                             time_us,
 | 
			
		||||
                                             dx, dy,
 | 
			
		||||
                                             dx, dy);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_virtual_input_device_evdev_notify_absolute_motion (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                                           uint64_t                   time_us,
 | 
			
		||||
                                                           double                     x,
 | 
			
		||||
                                                           double                     y)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDeviceEvdev *virtual_evdev =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE_EVDEV (virtual_device);
 | 
			
		||||
 | 
			
		||||
  clutter_seat_evdev_notify_absolute_motion (virtual_evdev->seat,
 | 
			
		||||
                                             virtual_evdev->device,
 | 
			
		||||
                                             time_us,
 | 
			
		||||
                                             x, y,
 | 
			
		||||
                                             NULL);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_virtual_input_device_evdev_notify_button (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                                  uint64_t                   time_us,
 | 
			
		||||
                                                  uint32_t                   button,
 | 
			
		||||
                                                  ClutterButtonState         button_state)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDeviceEvdev *virtual_evdev =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE_EVDEV (virtual_device);
 | 
			
		||||
  int button_count;
 | 
			
		||||
 | 
			
		||||
  if (get_button_type (button) != EVDEV_BUTTON_TYPE_BUTTON)
 | 
			
		||||
    {
 | 
			
		||||
      g_warning ("Unknown/invalid virtual device button 0x%x pressed",
 | 
			
		||||
                 button);
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  button_count = update_button_count (virtual_evdev, button, button_state);
 | 
			
		||||
  if (button_count < 0 || button_count > 1)
 | 
			
		||||
    {
 | 
			
		||||
      g_warning ("Received multiple virtual 0x%x button %s (ignoring)", button,
 | 
			
		||||
                 button_state == CLUTTER_BUTTON_STATE_PRESSED ? "presses" : "releases");
 | 
			
		||||
      update_button_count (virtual_evdev, button, 1 - button_state);
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  clutter_seat_evdev_notify_button (virtual_evdev->seat,
 | 
			
		||||
                                    virtual_evdev->device,
 | 
			
		||||
                                    time_us,
 | 
			
		||||
                                    button,
 | 
			
		||||
                                    button_state);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_virtual_input_device_evdev_notify_key (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                               uint64_t                   time_us,
 | 
			
		||||
                                               uint32_t                   key,
 | 
			
		||||
                                               ClutterKeyState            key_state)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDeviceEvdev *virtual_evdev =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE_EVDEV (virtual_device);
 | 
			
		||||
  int key_count;
 | 
			
		||||
 | 
			
		||||
  if (get_button_type (key) != EVDEV_BUTTON_TYPE_KEY)
 | 
			
		||||
    {
 | 
			
		||||
      g_warning ("Unknown/invalid virtual device key 0x%x pressed\n", key);
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  key_count = update_button_count (virtual_evdev, key, key_state);
 | 
			
		||||
  if (key_count < 0 || key_count > 1)
 | 
			
		||||
    {
 | 
			
		||||
      g_warning ("Received multiple virtual 0x%x key %s (ignoring)", key,
 | 
			
		||||
		 key_state == CLUTTER_KEY_STATE_PRESSED ? "presses" : "releases");
 | 
			
		||||
      update_button_count (virtual_evdev, key, 1 - key_state);
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  clutter_seat_evdev_notify_key (virtual_evdev->seat,
 | 
			
		||||
                                 virtual_evdev->device,
 | 
			
		||||
                                 time_us,
 | 
			
		||||
                                 key,
 | 
			
		||||
                                 key_state,
 | 
			
		||||
                                 TRUE);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static gboolean
 | 
			
		||||
pick_keycode_for_keyval_in_current_group (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                          guint                      keyval,
 | 
			
		||||
                                          guint                     *keycode_out,
 | 
			
		||||
                                          guint                     *level_out)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDeviceEvdev *virtual_evdev =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE_EVDEV (virtual_device);
 | 
			
		||||
  ClutterDeviceManager *manager;
 | 
			
		||||
  struct xkb_keymap *xkb_keymap;
 | 
			
		||||
  struct xkb_state  *state;
 | 
			
		||||
  guint keycode, layout;
 | 
			
		||||
  xkb_keycode_t min_keycode, max_keycode;
 | 
			
		||||
 | 
			
		||||
  manager = clutter_virtual_input_device_get_manager (virtual_device);
 | 
			
		||||
  xkb_keymap = _clutter_device_manager_evdev_get_keymap (CLUTTER_DEVICE_MANAGER_EVDEV (manager));
 | 
			
		||||
  state = virtual_evdev->seat->xkb;
 | 
			
		||||
 | 
			
		||||
  layout = xkb_state_serialize_layout (state, XKB_STATE_LAYOUT_EFFECTIVE);
 | 
			
		||||
  min_keycode = xkb_keymap_min_keycode (xkb_keymap);
 | 
			
		||||
  max_keycode = xkb_keymap_max_keycode (xkb_keymap);
 | 
			
		||||
  for (keycode = min_keycode; keycode < max_keycode; keycode++)
 | 
			
		||||
    {
 | 
			
		||||
      gint num_levels, level;
 | 
			
		||||
      num_levels = xkb_keymap_num_levels_for_key (xkb_keymap, keycode, layout);
 | 
			
		||||
      for (level = 0; level < num_levels; level++)
 | 
			
		||||
        {
 | 
			
		||||
          const xkb_keysym_t *syms;
 | 
			
		||||
          gint num_syms, sym;
 | 
			
		||||
          num_syms = xkb_keymap_key_get_syms_by_level (xkb_keymap, keycode, layout, level, &syms);
 | 
			
		||||
          for (sym = 0; sym < num_syms; sym++)
 | 
			
		||||
            {
 | 
			
		||||
              if (syms[sym] == keyval)
 | 
			
		||||
                {
 | 
			
		||||
                  *keycode_out = keycode;
 | 
			
		||||
                  if (level_out)
 | 
			
		||||
                    *level_out = level;
 | 
			
		||||
                  return TRUE;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  return FALSE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
apply_level_modifiers (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                       uint64_t                   time_us,
 | 
			
		||||
                       uint32_t                   level,
 | 
			
		||||
                       uint32_t                   key_state)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDeviceEvdev *virtual_evdev =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE_EVDEV (virtual_device);
 | 
			
		||||
  guint keysym, keycode, evcode;
 | 
			
		||||
 | 
			
		||||
  if (level == 0)
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  if (level == 1)
 | 
			
		||||
    {
 | 
			
		||||
      keysym = XKB_KEY_Shift_L;
 | 
			
		||||
    }
 | 
			
		||||
  else if (level == 2)
 | 
			
		||||
    {
 | 
			
		||||
      keysym = XKB_KEY_ISO_Level3_Shift;
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
    {
 | 
			
		||||
      g_warning ("Unhandled level: %d\n", level);
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  if (!pick_keycode_for_keyval_in_current_group (virtual_device, keysym,
 | 
			
		||||
                                                 &keycode, NULL))
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  clutter_input_device_keycode_to_evdev (virtual_evdev->device,
 | 
			
		||||
                                         keycode, &evcode);
 | 
			
		||||
  clutter_seat_evdev_notify_key (virtual_evdev->seat,
 | 
			
		||||
                                 virtual_evdev->device,
 | 
			
		||||
                                 time_us,
 | 
			
		||||
                                 evcode,
 | 
			
		||||
                                 key_state,
 | 
			
		||||
                                 TRUE);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_virtual_input_device_evdev_notify_keyval (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                                  uint64_t                   time_us,
 | 
			
		||||
                                                  uint32_t                   keyval,
 | 
			
		||||
                                                  ClutterKeyState            key_state)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDeviceEvdev *virtual_evdev =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE_EVDEV (virtual_device);
 | 
			
		||||
  int key_count;
 | 
			
		||||
  guint keycode = 0, level = 0, evcode = 0;
 | 
			
		||||
 | 
			
		||||
  if (!pick_keycode_for_keyval_in_current_group (virtual_device,
 | 
			
		||||
                                                 keyval, &keycode, &level))
 | 
			
		||||
    {
 | 
			
		||||
      g_warning ("No keycode found for keyval %x in current group", keyval);
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  clutter_input_device_keycode_to_evdev (virtual_evdev->device,
 | 
			
		||||
                                         keycode, &evcode);
 | 
			
		||||
 | 
			
		||||
  if (get_button_type (evcode) != EVDEV_BUTTON_TYPE_KEY)
 | 
			
		||||
    {
 | 
			
		||||
      g_warning ("Unknown/invalid virtual device key 0x%x pressed\n", evcode);
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  key_count = update_button_count (virtual_evdev, evcode, key_state);
 | 
			
		||||
  if (key_count < 0 || key_count > 1)
 | 
			
		||||
    {
 | 
			
		||||
      g_warning ("Received multiple virtual 0x%x key %s (ignoring)", keycode,
 | 
			
		||||
		 key_state == CLUTTER_KEY_STATE_PRESSED ? "presses" : "releases");
 | 
			
		||||
      update_button_count (virtual_evdev, evcode, 1 - key_state);
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  if (key_state)
 | 
			
		||||
    apply_level_modifiers (virtual_device, time_us, level, key_state);
 | 
			
		||||
 | 
			
		||||
  clutter_seat_evdev_notify_key (virtual_evdev->seat,
 | 
			
		||||
                                 virtual_evdev->device,
 | 
			
		||||
                                 time_us,
 | 
			
		||||
                                 evcode,
 | 
			
		||||
                                 key_state,
 | 
			
		||||
                                 TRUE);
 | 
			
		||||
 | 
			
		||||
  if (!key_state)
 | 
			
		||||
    apply_level_modifiers (virtual_device, time_us, level, key_state);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_virtual_input_device_evdev_get_property (GObject    *object,
 | 
			
		||||
                                                 guint       prop_id,
 | 
			
		||||
                                                 GValue     *value,
 | 
			
		||||
                                                 GParamSpec *pspec)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDeviceEvdev *virtual_evdev =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE_EVDEV (object);
 | 
			
		||||
 | 
			
		||||
  switch (prop_id)
 | 
			
		||||
    {
 | 
			
		||||
    case PROP_SEAT:
 | 
			
		||||
      g_value_set_pointer (value, virtual_evdev->seat);
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_virtual_input_device_evdev_set_property (GObject      *object,
 | 
			
		||||
                                                 guint         prop_id,
 | 
			
		||||
                                                 const GValue *value,
 | 
			
		||||
                                                 GParamSpec   *pspec)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDeviceEvdev *virtual_evdev =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE_EVDEV (object);
 | 
			
		||||
 | 
			
		||||
  switch (prop_id)
 | 
			
		||||
    {
 | 
			
		||||
    case PROP_SEAT:
 | 
			
		||||
      virtual_evdev->seat = g_value_get_pointer (value);
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_virtual_input_device_evdev_constructed (GObject *object)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDevice *virtual_device =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE (object);
 | 
			
		||||
  ClutterVirtualInputDeviceEvdev *virtual_evdev =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE_EVDEV (object);
 | 
			
		||||
  ClutterDeviceManager *manager;
 | 
			
		||||
  ClutterInputDeviceType device_type;
 | 
			
		||||
  ClutterStage *stage;
 | 
			
		||||
 | 
			
		||||
  manager = clutter_virtual_input_device_get_manager (virtual_device);
 | 
			
		||||
  device_type = clutter_virtual_input_device_get_device_type (virtual_device);
 | 
			
		||||
 | 
			
		||||
  virtual_evdev->device =
 | 
			
		||||
    _clutter_input_device_evdev_new_virtual (manager,
 | 
			
		||||
                                             virtual_evdev->seat,
 | 
			
		||||
                                             device_type,
 | 
			
		||||
                                             CLUTTER_INPUT_MODE_SLAVE);
 | 
			
		||||
 | 
			
		||||
  stage = _clutter_device_manager_evdev_get_stage (CLUTTER_DEVICE_MANAGER_EVDEV (manager));
 | 
			
		||||
  _clutter_input_device_set_stage (virtual_evdev->device, stage);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_virtual_input_device_evdev_finalize (GObject *object)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDevice *virtual_device =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE (object);
 | 
			
		||||
  ClutterVirtualInputDeviceEvdev *virtual_evdev =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE_EVDEV (object);
 | 
			
		||||
  GObjectClass *object_class;
 | 
			
		||||
 | 
			
		||||
  release_pressed_buttons (virtual_device);
 | 
			
		||||
  g_clear_object (&virtual_evdev->device);
 | 
			
		||||
 | 
			
		||||
  object_class =
 | 
			
		||||
    G_OBJECT_CLASS (clutter_virtual_input_device_evdev_parent_class);
 | 
			
		||||
  object_class->finalize (object);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_virtual_input_device_evdev_init (ClutterVirtualInputDeviceEvdev *virtual_device_evdev)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_virtual_input_device_evdev_class_init (ClutterVirtualInputDeviceEvdevClass *klass)
 | 
			
		||||
{
 | 
			
		||||
  GObjectClass *object_class = G_OBJECT_CLASS (klass);
 | 
			
		||||
  ClutterVirtualInputDeviceClass *virtual_input_device_class =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE_CLASS (klass);
 | 
			
		||||
 | 
			
		||||
  object_class->get_property = clutter_virtual_input_device_evdev_get_property;
 | 
			
		||||
  object_class->set_property = clutter_virtual_input_device_evdev_set_property;
 | 
			
		||||
  object_class->constructed = clutter_virtual_input_device_evdev_constructed;
 | 
			
		||||
  object_class->finalize = clutter_virtual_input_device_evdev_finalize;
 | 
			
		||||
 | 
			
		||||
  virtual_input_device_class->notify_relative_motion = clutter_virtual_input_device_evdev_notify_relative_motion;
 | 
			
		||||
  virtual_input_device_class->notify_absolute_motion = clutter_virtual_input_device_evdev_notify_absolute_motion;
 | 
			
		||||
  virtual_input_device_class->notify_button = clutter_virtual_input_device_evdev_notify_button;
 | 
			
		||||
  virtual_input_device_class->notify_key = clutter_virtual_input_device_evdev_notify_key;
 | 
			
		||||
  virtual_input_device_class->notify_keyval = clutter_virtual_input_device_evdev_notify_keyval;
 | 
			
		||||
 | 
			
		||||
  obj_props[PROP_SEAT] = g_param_spec_pointer ("seat",
 | 
			
		||||
                                               P_("ClutterSeatEvdev"),
 | 
			
		||||
                                               P_("ClutterSeatEvdev"),
 | 
			
		||||
                                               CLUTTER_PARAM_READWRITE |
 | 
			
		||||
                                               G_PARAM_CONSTRUCT_ONLY);
 | 
			
		||||
  g_object_class_install_properties (object_class, PROP_LAST, obj_props);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										35
									
								
								clutter/clutter/evdev/clutter-virtual-input-device-evdev.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								clutter/clutter/evdev/clutter-virtual-input-device-evdev.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Clutter.
 | 
			
		||||
 *
 | 
			
		||||
 * An OpenGL based 'interactive canvas' library.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 2016  Red Hat Inc.
 | 
			
		||||
 *
 | 
			
		||||
 * This library is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
 * License as published by the Free Software Foundation; either
 | 
			
		||||
 * version 2 of the License, or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This library is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
 * Lesser General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU Lesser General Public
 | 
			
		||||
 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 *
 | 
			
		||||
 * Author: Jonas Ådahl <jadahl@gmail.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef __CLUTTER_VIRTUAL_INPUT_DEVICE_EVDEV_H__
 | 
			
		||||
#define __CLUTTER_VIRTUAL_INPUT_DEVICE_EVDEV_H__
 | 
			
		||||
 | 
			
		||||
#include "clutter-virtual-input-device.h"
 | 
			
		||||
 | 
			
		||||
#define CLUTTER_TYPE_VIRTUAL_INPUT_DEVICE_EVDEV (clutter_virtual_input_device_evdev_get_type ())
 | 
			
		||||
G_DECLARE_FINAL_TYPE (ClutterVirtualInputDeviceEvdev,
 | 
			
		||||
                      clutter_virtual_input_device_evdev,
 | 
			
		||||
                      CLUTTER, VIRTUAL_INPUT_DEVICE_EVDEV,
 | 
			
		||||
                      ClutterVirtualInputDevice)
 | 
			
		||||
 | 
			
		||||
#endif /* __CLUTTER_VIRTUAL_INPUT_DEVICE_EVDEV_H__ */
 | 
			
		||||
@@ -28,6 +28,7 @@
 | 
			
		||||
#include "clutter-backend-x11.h"
 | 
			
		||||
#include "clutter-input-device-core-x11.h"
 | 
			
		||||
#include "clutter-stage-x11.h"
 | 
			
		||||
#include "clutter-virtual-input-device-x11.h"
 | 
			
		||||
 | 
			
		||||
#include "clutter-backend.h"
 | 
			
		||||
#include "clutter-debug.h"
 | 
			
		||||
@@ -480,6 +481,13 @@ clutter_device_manager_x11_get_device (ClutterDeviceManager *manager,
 | 
			
		||||
                              GINT_TO_POINTER (id));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static ClutterVirtualInputDevice *
 | 
			
		||||
clutter_device_manager_x11_create_virtual_device (ClutterDeviceManager  *device_manager,
 | 
			
		||||
                                                  ClutterInputDeviceType device_type)
 | 
			
		||||
{
 | 
			
		||||
  return g_object_new (CLUTTER_TYPE_VIRTUAL_INPUT_DEVICE_X11, NULL);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_device_manager_x11_set_property (GObject      *gobject,
 | 
			
		||||
                                         guint         prop_id,
 | 
			
		||||
@@ -526,6 +534,7 @@ clutter_device_manager_x11_class_init (ClutterDeviceManagerX11Class *klass)
 | 
			
		||||
  manager_class->get_devices = clutter_device_manager_x11_get_devices;
 | 
			
		||||
  manager_class->get_core_device = clutter_device_manager_x11_get_core_device;
 | 
			
		||||
  manager_class->get_device = clutter_device_manager_x11_get_device;
 | 
			
		||||
  manager_class->create_virtual_device = clutter_device_manager_x11_create_virtual_device;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
 
 | 
			
		||||
@@ -321,6 +321,42 @@ get_device_ids (ClutterBackendX11  *backend_x11,
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static gchar *
 | 
			
		||||
get_device_node_path (ClutterBackendX11  *backend_x11,
 | 
			
		||||
                      XIDeviceInfo       *info)
 | 
			
		||||
{
 | 
			
		||||
  gulong nitems, bytes_after;
 | 
			
		||||
  guchar *data;
 | 
			
		||||
  int rc, format;
 | 
			
		||||
  Atom prop, type;
 | 
			
		||||
  gchar *node_path;
 | 
			
		||||
 | 
			
		||||
  prop = XInternAtom (backend_x11->xdpy, "Device Node", False);
 | 
			
		||||
  if (prop == None)
 | 
			
		||||
    return NULL;
 | 
			
		||||
 | 
			
		||||
  clutter_x11_trap_x_errors ();
 | 
			
		||||
 | 
			
		||||
  rc = XIGetProperty (backend_x11->xdpy,
 | 
			
		||||
                      info->deviceid, prop, 0, 1024, False,
 | 
			
		||||
                      XA_STRING, &type, &format, &nitems, &bytes_after,
 | 
			
		||||
                      (guchar **) &data);
 | 
			
		||||
 | 
			
		||||
  if (clutter_x11_untrap_x_errors ())
 | 
			
		||||
    return NULL;
 | 
			
		||||
 | 
			
		||||
  if (rc != Success || type != XA_STRING || format != 8)
 | 
			
		||||
    {
 | 
			
		||||
      XFree (data);
 | 
			
		||||
      return FALSE;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  node_path = g_strdup ((char *) data);
 | 
			
		||||
  XFree (data);
 | 
			
		||||
 | 
			
		||||
  return node_path;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static ClutterInputDevice *
 | 
			
		||||
create_device (ClutterDeviceManagerXI2 *manager_xi2,
 | 
			
		||||
               ClutterBackendX11       *backend_x11,
 | 
			
		||||
@@ -331,7 +367,7 @@ create_device (ClutterDeviceManagerXI2 *manager_xi2,
 | 
			
		||||
  ClutterInputMode mode;
 | 
			
		||||
  gboolean is_enabled;
 | 
			
		||||
  guint num_touches = 0;
 | 
			
		||||
  gchar *vendor_id = NULL, *product_id = NULL;
 | 
			
		||||
  gchar *vendor_id = NULL, *product_id = NULL, *node_path = NULL;
 | 
			
		||||
 | 
			
		||||
  if (info->use == XIMasterKeyboard || info->use == XISlaveKeyboard)
 | 
			
		||||
    {
 | 
			
		||||
@@ -391,7 +427,10 @@ create_device (ClutterDeviceManagerXI2 *manager_xi2,
 | 
			
		||||
 | 
			
		||||
  if (info->use != XIMasterKeyboard &&
 | 
			
		||||
      info->use != XIMasterPointer)
 | 
			
		||||
    get_device_ids (backend_x11, info, &vendor_id, &product_id);
 | 
			
		||||
    {
 | 
			
		||||
      get_device_ids (backend_x11, info, &vendor_id, &product_id);
 | 
			
		||||
      node_path = get_device_node_path (backend_x11, info);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  retval = g_object_new (CLUTTER_TYPE_INPUT_DEVICE_XI2,
 | 
			
		||||
                         "name", info->name,
 | 
			
		||||
@@ -404,6 +443,7 @@ create_device (ClutterDeviceManagerXI2 *manager_xi2,
 | 
			
		||||
                         "enabled", is_enabled,
 | 
			
		||||
                         "vendor-id", vendor_id,
 | 
			
		||||
                         "product-id", product_id,
 | 
			
		||||
                         "device-node", node_path,
 | 
			
		||||
                         NULL);
 | 
			
		||||
 | 
			
		||||
  translate_device_classes (backend_x11->xdpy, retval,
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										89
									
								
								clutter/clutter/x11/clutter-virtual-input-device-x11.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								clutter/clutter/x11/clutter-virtual-input-device-x11.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,89 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Clutter.
 | 
			
		||||
 *
 | 
			
		||||
 * An OpenGL based 'interactive canvas' library.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 2016  Red Hat Inc.
 | 
			
		||||
 *
 | 
			
		||||
 * This library is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
 * License as published by the Free Software Foundation; either
 | 
			
		||||
 * version 2 of the License, or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This library is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
 * Lesser General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU Lesser General Public
 | 
			
		||||
 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 *
 | 
			
		||||
 * Author: Jonas Ådahl <jadahl@gmail.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <glib-object.h>
 | 
			
		||||
 | 
			
		||||
#include "clutter-virtual-input-device.h"
 | 
			
		||||
#include "x11/clutter-virtual-input-device-x11.h"
 | 
			
		||||
 | 
			
		||||
struct _ClutterVirtualInputDeviceX11
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDevice parent;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
G_DEFINE_TYPE (ClutterVirtualInputDeviceX11,
 | 
			
		||||
               clutter_virtual_input_device_x11,
 | 
			
		||||
               CLUTTER_TYPE_VIRTUAL_INPUT_DEVICE)
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_virtual_input_device_x11_notify_relative_motion (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                                         uint64_t                   time_us,
 | 
			
		||||
                                                         double                     dx,
 | 
			
		||||
                                                         double                     dy)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_virtual_input_device_x11_notify_absolute_motion (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                                         uint64_t                   time_us,
 | 
			
		||||
                                                         double                     x,
 | 
			
		||||
                                                         double                     y)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_virtual_input_device_x11_notify_button (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                                uint64_t                   time_us,
 | 
			
		||||
                                                uint32_t                   button,
 | 
			
		||||
                                                ClutterButtonState         button_state)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_virtual_input_device_x11_notify_key (ClutterVirtualInputDevice *virtual_device,
 | 
			
		||||
                                             uint64_t                   time_us,
 | 
			
		||||
                                             uint32_t                   key,
 | 
			
		||||
                                             ClutterKeyState            key_state)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_virtual_input_device_x11_init (ClutterVirtualInputDeviceX11 *virtual_device_x11)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_virtual_input_device_x11_class_init (ClutterVirtualInputDeviceX11Class *klass)
 | 
			
		||||
{
 | 
			
		||||
  ClutterVirtualInputDeviceClass *virtual_input_device_class =
 | 
			
		||||
    CLUTTER_VIRTUAL_INPUT_DEVICE_CLASS (klass);
 | 
			
		||||
 | 
			
		||||
  virtual_input_device_class->notify_relative_motion = clutter_virtual_input_device_x11_notify_relative_motion;
 | 
			
		||||
  virtual_input_device_class->notify_absolute_motion = clutter_virtual_input_device_x11_notify_absolute_motion;
 | 
			
		||||
  virtual_input_device_class->notify_button = clutter_virtual_input_device_x11_notify_button;
 | 
			
		||||
  virtual_input_device_class->notify_key = clutter_virtual_input_device_x11_notify_key;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										35
									
								
								clutter/clutter/x11/clutter-virtual-input-device-x11.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								clutter/clutter/x11/clutter-virtual-input-device-x11.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Clutter.
 | 
			
		||||
 *
 | 
			
		||||
 * An OpenGL based 'interactive canvas' library.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 2016  Red Hat Inc.
 | 
			
		||||
 *
 | 
			
		||||
 * This library is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
 * License as published by the Free Software Foundation; either
 | 
			
		||||
 * version 2 of the License, or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This library is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
 * Lesser General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU Lesser General Public
 | 
			
		||||
 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 *
 | 
			
		||||
 * Author: Jonas Ådahl <jadahl@gmail.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef __CLUTTER_VIRTUAL_INPUT_DEVICE_X11_H__
 | 
			
		||||
#define __CLUTTER_VIRTUAL_INPUT_DEVICE_X11_H__
 | 
			
		||||
 | 
			
		||||
#include "clutter-virtual-input-device.h"
 | 
			
		||||
 | 
			
		||||
#define CLUTTER_TYPE_VIRTUAL_INPUT_DEVICE_X11 (clutter_virtual_input_device_x11_get_type ())
 | 
			
		||||
G_DECLARE_FINAL_TYPE (ClutterVirtualInputDeviceX11,
 | 
			
		||||
                      clutter_virtual_input_device_x11,
 | 
			
		||||
                      CLUTTER, VIRTUAL_INPUT_DEVICE_X11,
 | 
			
		||||
                      ClutterVirtualInputDevice)
 | 
			
		||||
 | 
			
		||||
#endif /* __CLUTTER_VIRTUAL_INPUT_DEVICE_X11_H__ */
 | 
			
		||||
@@ -116,7 +116,7 @@ m4_define([pango_req_version],          [1.30])
 | 
			
		||||
m4_define([gi_req_version],             [1.39.0])
 | 
			
		||||
m4_define([xcomposite_req_version],     [0.4])
 | 
			
		||||
m4_define([gdk_req_version],            [3.3.18])
 | 
			
		||||
m4_define([libinput_req_version],       [0.19.0])
 | 
			
		||||
m4_define([libinput_req_version],       [1.4.0])
 | 
			
		||||
m4_define([libudev_req_version],        [136])
 | 
			
		||||
 | 
			
		||||
AC_SUBST([GLIB_REQ_VERSION],       [glib_req_version])
 | 
			
		||||
 
 | 
			
		||||
@@ -109,7 +109,9 @@ clean-wrappers:
 | 
			
		||||
 | 
			
		||||
.PHONY: wrappers clean-wrappers
 | 
			
		||||
 | 
			
		||||
common_ldadd = $(top_builddir)/clutter/libmutter-clutter-@CLUTTER_API_VERSION@.la
 | 
			
		||||
common_ldadd = \
 | 
			
		||||
  $(top_builddir)/clutter/libmutter-clutter-@CLUTTER_API_VERSION@.la \
 | 
			
		||||
  $(top_builddir)/../cogl/cogl/libmutter-cogl.la
 | 
			
		||||
 | 
			
		||||
check_PROGRAMS = test-interactive
 | 
			
		||||
check_SCRIPTS = wrappers
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,7 @@
 | 
			
		||||
common_ldadd = $(top_builddir)/clutter/libmutter-clutter-@CLUTTER_API_VERSION@.la
 | 
			
		||||
common_ldadd = \
 | 
			
		||||
  $(top_builddir)/clutter/libmutter-clutter-@CLUTTER_API_VERSION@.la \
 | 
			
		||||
  $(top_builddir)/../cogl/cogl/libmutter-cogl.la
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
check_PROGRAMS = \
 | 
			
		||||
	test-text \
 | 
			
		||||
 
 | 
			
		||||
@@ -65,7 +65,7 @@
 | 
			
		||||
 * conflicts we only expose the minimal set of GLES 2.0 types and enums
 | 
			
		||||
 * publicly.
 | 
			
		||||
 */
 | 
			
		||||
#ifdef COGL_COMPILATION
 | 
			
		||||
#if defined(COGL_COMPILATION) || defined(COGL_ENABLE_MUTTER_API)
 | 
			
		||||
#include "cogl-gl-header.h"
 | 
			
		||||
#else
 | 
			
		||||
#include <cogl/cogl-gles2-types.h>
 | 
			
		||||
 
 | 
			
		||||
@@ -936,7 +936,7 @@ _cogl_pipeline_layer_needs_combine_separate
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
   return FALSE;
 | 
			
		||||
  return FALSE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -180,7 +180,7 @@ XVisualInfo *
 | 
			
		||||
cogl_xlib_renderer_get_visual_info (CoglRenderer *renderer);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * cogl_xlib_renderer_request_reset_on_video_memory_purge:
 | 
			
		||||
 * cogl_xlib_renderer_request_reset_on_video_memory_purge: (skip)
 | 
			
		||||
 * @renderer: a #CoglRenderer
 | 
			
		||||
 * @enable: The new value
 | 
			
		||||
 *
 | 
			
		||||
 
 | 
			
		||||
@@ -1307,7 +1307,7 @@ CoglMaterialWrapMode
 | 
			
		||||
cogl_material_layer_get_wrap_mode_p (CoglMaterialLayer *layer);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * cogl_material_set_depth_state:
 | 
			
		||||
 * cogl_material_set_depth_state: (skip)
 | 
			
		||||
 * @material: A #CoglMaterial object
 | 
			
		||||
 * @state: A #CoglDepthState struct
 | 
			
		||||
 * @error: A #CoglError to report failures to setup the given @state.
 | 
			
		||||
@@ -1334,7 +1334,7 @@ cogl_material_set_depth_state (CoglMaterial *material,
 | 
			
		||||
                               CoglError **error);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * cogl_material_get_depth_state:
 | 
			
		||||
 * cogl_material_get_depth_state: (skip)
 | 
			
		||||
 * @material: A #CoglMaterial object
 | 
			
		||||
 * @state_out: A destination #CoglDepthState struct
 | 
			
		||||
 *
 | 
			
		||||
@@ -1370,8 +1370,8 @@ typedef CoglBool (*CoglMaterialLayerCallback) (CoglMaterial *material,
 | 
			
		||||
/**
 | 
			
		||||
 * cogl_material_foreach_layer:
 | 
			
		||||
 * @material: A #CoglMaterial object
 | 
			
		||||
 * @callback: A #CoglMaterialLayerCallback to be called for each layer
 | 
			
		||||
 *            index
 | 
			
		||||
 * @callback: (scope call): A #CoglMaterialLayerCallback to be called for each
 | 
			
		||||
 *            layer index
 | 
			
		||||
 * @user_data: Private data that will be passed to the callback
 | 
			
		||||
 *
 | 
			
		||||
 * Iterates all the layer indices of the given @material.
 | 
			
		||||
 
 | 
			
		||||
@@ -298,7 +298,7 @@ _cogl_winsys_egl_make_current (CoglDisplay *display,
 | 
			
		||||
  if (egl_display->current_draw_surface == draw &&
 | 
			
		||||
      egl_display->current_read_surface == read &&
 | 
			
		||||
      egl_display->current_context == context)
 | 
			
		||||
  return EGL_TRUE;
 | 
			
		||||
    return EGL_TRUE;
 | 
			
		||||
 | 
			
		||||
  ret = eglMakeCurrent (egl_renderer->edpy,
 | 
			
		||||
                        draw,
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										63
									
								
								configure.ac
									
									
									
									
									
								
							
							
						
						
									
										63
									
								
								configure.ac
									
									
									
									
									
								
							@@ -2,7 +2,7 @@ AC_PREREQ(2.62)
 | 
			
		||||
 | 
			
		||||
m4_define([mutter_major_version], [3])
 | 
			
		||||
m4_define([mutter_minor_version], [21])
 | 
			
		||||
m4_define([mutter_micro_version], [4])
 | 
			
		||||
m4_define([mutter_micro_version], [90])
 | 
			
		||||
 | 
			
		||||
m4_define([mutter_version],
 | 
			
		||||
          [mutter_major_version.mutter_minor_version.mutter_micro_version])
 | 
			
		||||
@@ -43,9 +43,11 @@ GETTEXT_PACKAGE=mutter
 | 
			
		||||
AC_SUBST(GETTEXT_PACKAGE)
 | 
			
		||||
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Name of default gettext domain])
 | 
			
		||||
 | 
			
		||||
AM_GNU_GETTEXT_VERSION([0.19.6])
 | 
			
		||||
AM_GNU_GETTEXT([external])
 | 
			
		||||
 | 
			
		||||
LT_PREREQ([2.2.6])
 | 
			
		||||
LT_INIT([disable-static])
 | 
			
		||||
IT_PROG_INTLTOOL([0.41])
 | 
			
		||||
AC_PROG_CC
 | 
			
		||||
AC_PROG_CC_C_O
 | 
			
		||||
AC_PROG_INSTALL
 | 
			
		||||
@@ -59,12 +61,14 @@ AM_PATH_GLIB_2_0([2.49.0])
 | 
			
		||||
CANBERRA_GTK=libcanberra-gtk3
 | 
			
		||||
CANBERRA_GTK_VERSION=0.26
 | 
			
		||||
 | 
			
		||||
LIBWACOM_VERSION=0.13
 | 
			
		||||
 | 
			
		||||
MUTTER_PC_MODULES="
 | 
			
		||||
   gtk+-3.0 >= 3.19.8
 | 
			
		||||
   gio-unix-2.0 >= 2.35.1
 | 
			
		||||
   pango >= 1.2.0
 | 
			
		||||
   cairo >= 1.10.0
 | 
			
		||||
   gsettings-desktop-schemas >= 3.19.3
 | 
			
		||||
   gsettings-desktop-schemas >= 3.21.4
 | 
			
		||||
   json-glib-1.0
 | 
			
		||||
   upower-glib >= 0.99.0
 | 
			
		||||
   gnome-desktop-3.0
 | 
			
		||||
@@ -109,6 +113,16 @@ AC_ARG_WITH(libcanberra,
 | 
			
		||||
                 [disable the use of libcanberra for playing sounds]),,
 | 
			
		||||
  with_libcanberra=auto)
 | 
			
		||||
 | 
			
		||||
AC_ARG_WITH(libwacom,
 | 
			
		||||
  AC_HELP_STRING([--without-libwacom],
 | 
			
		||||
                 [disable the use of libwacom for advanced tablet management]),,
 | 
			
		||||
  with_libwacom=auto)
 | 
			
		||||
 | 
			
		||||
AC_ARG_WITH(gudev,
 | 
			
		||||
  AC_HELP_STRING([--without-gudev],
 | 
			
		||||
                 [disable the use of gudev for device type detection]),,
 | 
			
		||||
  with_gudev=auto)
 | 
			
		||||
 | 
			
		||||
AC_ARG_WITH([xwayland-path],
 | 
			
		||||
            [AS_HELP_STRING([--with-xwayland-path], [Absolute path for an X Wayland server])],
 | 
			
		||||
            [XWAYLAND_PATH="$withval"],
 | 
			
		||||
@@ -170,6 +184,42 @@ else
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
have_libwacom=no
 | 
			
		||||
AC_MSG_CHECKING([libwacom])
 | 
			
		||||
if test x$with_libwacom = xno ; then
 | 
			
		||||
  AC_MSG_RESULT([disabled])
 | 
			
		||||
else
 | 
			
		||||
  if $PKG_CONFIG --exists libwacom '>=' $LIBWACOM_VERSION; then
 | 
			
		||||
    have_libwacom=yes
 | 
			
		||||
    AC_MSG_RESULT(yes)
 | 
			
		||||
    MUTTER_PC_MODULES="$MUTTER_PC_MODULES libwacom"
 | 
			
		||||
    AC_DEFINE([HAVE_LIBWACOM], 1, [Building with libwacom for advanced tablet management])
 | 
			
		||||
  else
 | 
			
		||||
    AC_MSG_RESULT(no)
 | 
			
		||||
    if test x$with_libwacom = xyes ; then
 | 
			
		||||
      AC_MSG_ERROR([libwacom forced but not found])
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
have_gudev=no
 | 
			
		||||
AC_MSG_CHECKING([gudev])
 | 
			
		||||
if test x$with_gudev = xno ; then
 | 
			
		||||
  AC_MSG_RESULT([disabled])
 | 
			
		||||
else
 | 
			
		||||
  if $PKG_CONFIG --exists gudev-1.0; then
 | 
			
		||||
    have_gudev=yes
 | 
			
		||||
    AC_MSG_RESULT(yes)
 | 
			
		||||
    MUTTER_PC_MODULES="$MUTTER_PC_MODULES gudev-1.0"
 | 
			
		||||
    AC_DEFINE([HAVE_LIBGUDEV], 1, [Building with gudev for device type detection])
 | 
			
		||||
  else
 | 
			
		||||
    AC_MSG_RESULT(no)
 | 
			
		||||
    if test x$with_gudev = xyes ; then
 | 
			
		||||
      AC_MSG_ERROR([gudev forced but not found])
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
INTROSPECTION_VERSION=0.9.5
 | 
			
		||||
GOBJECT_INTROSPECTION_CHECK([$INTROSPECTION_VERSION])
 | 
			
		||||
 | 
			
		||||
@@ -189,12 +239,13 @@ AC_SUBST(XWAYLAND_PATH)
 | 
			
		||||
 | 
			
		||||
PKG_CHECK_MODULES(MUTTER, $MUTTER_PC_MODULES)
 | 
			
		||||
 | 
			
		||||
MUTTER_NATIVE_BACKEND_MODULES="libdrm libsystemd libinput gudev-1.0 gbm >= 10.3"
 | 
			
		||||
MUTTER_NATIVE_BACKEND_MODULES="libdrm libsystemd libinput >= 1.4 gudev-1.0 gbm >= 10.3"
 | 
			
		||||
 | 
			
		||||
AC_ARG_ENABLE(native-backend,
 | 
			
		||||
  AS_HELP_STRING([--disable-native-backend], [disable mutter native (KMS) backend]),,
 | 
			
		||||
  enable_native_backend=auto
 | 
			
		||||
)
 | 
			
		||||
have_native_backend="no"
 | 
			
		||||
AS_IF([test "$enable_native_backend" = "yes"], [have_native_backend=yes],
 | 
			
		||||
      [test "$enable_native_backend" = "auto"], PKG_CHECK_EXISTS([$MUTTER_NATIVE_BACKEND_MODULES], [have_native_backend=yes]))
 | 
			
		||||
 | 
			
		||||
@@ -221,7 +272,7 @@ AS_IF([test "$have_wayland" = "yes"], [
 | 
			
		||||
  AC_SUBST([WAYLAND_SCANNER])
 | 
			
		||||
  AC_DEFINE([HAVE_WAYLAND],[1],[Define if you want to enable Wayland support])
 | 
			
		||||
 | 
			
		||||
  PKG_CHECK_MODULES(WAYLAND_PROTOCOLS, [wayland-protocols >= 1.1],
 | 
			
		||||
  PKG_CHECK_MODULES(WAYLAND_PROTOCOLS, [wayland-protocols >= 1.6],
 | 
			
		||||
		    [ac_wayland_protocols_pkgdatadir=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols`])
 | 
			
		||||
  AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, $ac_wayland_protocols_pkgdatadir)
 | 
			
		||||
])
 | 
			
		||||
@@ -423,6 +474,8 @@ mutter-$VERSION
 | 
			
		||||
 | 
			
		||||
	Startup notification:     ${have_startup_notification}
 | 
			
		||||
	libcanberra:              ${have_libcanberra}
 | 
			
		||||
	libwacom:                 ${have_libwacom}
 | 
			
		||||
	gudev                     ${have_gudev}
 | 
			
		||||
	Introspection:            ${found_introspection}
 | 
			
		||||
	Session management:       ${found_sm}
 | 
			
		||||
	Wayland:                  ${have_wayland}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,140 +1,140 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8" ?>
 | 
			
		||||
<KeyListEntries schema="org.gnome.desktop.wm.keybindings"
 | 
			
		||||
                group="system"
 | 
			
		||||
                _name="Navigation"
 | 
			
		||||
                name="Navigation"
 | 
			
		||||
                wm_name="Mutter"
 | 
			
		||||
                package="mutter">
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="move-to-workspace-1"
 | 
			
		||||
	              _description="Move window to workspace 1" />
 | 
			
		||||
	              description="Move window to workspace 1" />
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="move-to-workspace-2"
 | 
			
		||||
	              _description="Move window to workspace 2" />
 | 
			
		||||
	              description="Move window to workspace 2" />
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="move-to-workspace-3"
 | 
			
		||||
	              _description="Move window to workspace 3" />
 | 
			
		||||
	              description="Move window to workspace 3" />
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="move-to-workspace-4"
 | 
			
		||||
	              _description="Move window to workspace 4" />
 | 
			
		||||
	              description="Move window to workspace 4" />
 | 
			
		||||
 | 
			
		||||
        <KeyListEntry name="move-to-workspace-last"
 | 
			
		||||
                      _description="Move window to last workspace" />
 | 
			
		||||
                      description="Move window to last workspace" />
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="move-to-workspace-left"
 | 
			
		||||
	              _description="Move window one workspace to the left" />
 | 
			
		||||
	              description="Move window one workspace to the left" />
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="move-to-workspace-right"
 | 
			
		||||
	              _description="Move window one workspace to the right" />
 | 
			
		||||
	              description="Move window one workspace to the right" />
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="move-to-workspace-up"
 | 
			
		||||
	              _description="Move window one workspace up" />
 | 
			
		||||
	              description="Move window one workspace up" />
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="move-to-workspace-down"
 | 
			
		||||
	              _description="Move window one workspace down" />
 | 
			
		||||
	              description="Move window one workspace down" />
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="move-to-monitor-left"
 | 
			
		||||
	              _description="Move window one monitor to the left" />
 | 
			
		||||
	              description="Move window one monitor to the left" />
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="move-to-monitor-right"
 | 
			
		||||
	              _description="Move window one monitor to the right" />
 | 
			
		||||
	              description="Move window one monitor to the right" />
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="move-to-monitor-up"
 | 
			
		||||
	              _description="Move window one monitor up" />
 | 
			
		||||
	              description="Move window one monitor up" />
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="move-to-monitor-down"
 | 
			
		||||
	              _description="Move window one monitor down" />
 | 
			
		||||
	              description="Move window one monitor down" />
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="switch-applications"
 | 
			
		||||
	              reverse-entry="switch-applications-backward"
 | 
			
		||||
	              _description="Switch applications"/>
 | 
			
		||||
	              description="Switch applications"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="switch-applications-backward"
 | 
			
		||||
	              reverse-entry="switch-applications"
 | 
			
		||||
	              hidden="true"
 | 
			
		||||
	              _description="Switch to previous application"/>
 | 
			
		||||
	              description="Switch to previous application"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="switch-windows"
 | 
			
		||||
	              reverse-entry="switch-windows-backward"
 | 
			
		||||
	              _description="Switch windows"/>
 | 
			
		||||
	              description="Switch windows"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="switch-windows-backward"
 | 
			
		||||
	              reverse-entry="switch-windows"
 | 
			
		||||
	              hidden="true"
 | 
			
		||||
	              _description="Switch to previous window"/>
 | 
			
		||||
	              description="Switch to previous window"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="switch-group"
 | 
			
		||||
	              reverse-entry="switch-group-backward"
 | 
			
		||||
	              _description="Switch windows of an application"/>
 | 
			
		||||
	              description="Switch windows of an application"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="switch-group-backward"
 | 
			
		||||
	              reverse-entry="switch-group"
 | 
			
		||||
	              hidden="true"
 | 
			
		||||
	              _description="Switch to previous window of an application"/>
 | 
			
		||||
	              description="Switch to previous window of an application"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="switch-panels"
 | 
			
		||||
	              reverse-entry="switch-panels-backward"
 | 
			
		||||
	              _description="Switch system controls"/>
 | 
			
		||||
	              description="Switch system controls"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="switch-panels-backward"
 | 
			
		||||
	              reverse-entry="switch-panels"
 | 
			
		||||
	              hidden="true"
 | 
			
		||||
	              _description="Switch to previous system control"/>
 | 
			
		||||
	              description="Switch to previous system control"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="cycle-windows"
 | 
			
		||||
	              reverse-entry="cycle-windows-backward"
 | 
			
		||||
	              _description="Switch windows directly"/>
 | 
			
		||||
	              description="Switch windows directly"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="cycle-windows-backward"
 | 
			
		||||
	              reverse-entry="cycle-windows"
 | 
			
		||||
	              hidden="true"
 | 
			
		||||
	              _description="Switch directly to previous window"/>
 | 
			
		||||
	              description="Switch directly to previous window"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="cycle-group"
 | 
			
		||||
	              reverse-entry="cycle-group-backward"
 | 
			
		||||
	              _description="Switch windows of an app directly"/>
 | 
			
		||||
	              description="Switch windows of an app directly"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="cycle-group-backward"
 | 
			
		||||
	              reverse-entry="cycle-group"
 | 
			
		||||
	              hidden="true"
 | 
			
		||||
	              _description="Switch directly to previous window of an app"/>
 | 
			
		||||
	              description="Switch directly to previous window of an app"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="cycle-panels"
 | 
			
		||||
	              reverse-entry="cycle-panels-backward"
 | 
			
		||||
	              _description="Switch system controls directly"/>
 | 
			
		||||
	              description="Switch system controls directly"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="cycle-panels-backward"
 | 
			
		||||
	              reverse-entry="cycle-panels"
 | 
			
		||||
	              hidden="true"
 | 
			
		||||
	              _description="Switch directly to previous system control"/>
 | 
			
		||||
	              description="Switch directly to previous system control"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="show-desktop"
 | 
			
		||||
	              _description="Hide all normal windows"/>
 | 
			
		||||
	              description="Hide all normal windows"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="switch-to-workspace-1"
 | 
			
		||||
	              _description="Switch to workspace 1" />
 | 
			
		||||
	              description="Switch to workspace 1" />
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="switch-to-workspace-2"
 | 
			
		||||
	              _description="Switch to workspace 2" />
 | 
			
		||||
	              description="Switch to workspace 2" />
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="switch-to-workspace-3"
 | 
			
		||||
	              _description="Switch to workspace 3" />
 | 
			
		||||
	              description="Switch to workspace 3" />
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="switch-to-workspace-4"
 | 
			
		||||
	              _description="Switch to workspace 4" />
 | 
			
		||||
	              description="Switch to workspace 4" />
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="switch-to-workspace-last"
 | 
			
		||||
	              _description="Switch to last workspace" />
 | 
			
		||||
	              description="Switch to last workspace" />
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="switch-to-workspace-left"
 | 
			
		||||
	              _description="Move to workspace left" />
 | 
			
		||||
	              description="Move to workspace left" />
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="switch-to-workspace-right"
 | 
			
		||||
	              _description="Move to workspace right" />
 | 
			
		||||
	              description="Move to workspace right" />
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="switch-to-workspace-up"
 | 
			
		||||
	              _description="Move to workspace above" />
 | 
			
		||||
	              description="Move to workspace above" />
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="switch-to-workspace-down"
 | 
			
		||||
	              _description="Move to workspace below" />
 | 
			
		||||
	              description="Move to workspace below" />
 | 
			
		||||
 | 
			
		||||
</KeyListEntries>
 | 
			
		||||
@@ -1,13 +1,13 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8" ?>
 | 
			
		||||
<KeyListEntries schema="org.gnome.desktop.wm.keybindings"
 | 
			
		||||
                group="system"
 | 
			
		||||
                _name="System"
 | 
			
		||||
                name="System"
 | 
			
		||||
                wm_name="Mutter"
 | 
			
		||||
                package="mutter">
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="panel-run-dialog" _description="Show the run command prompt"/>
 | 
			
		||||
	<KeyListEntry name="panel-run-dialog" description="Show the run command prompt"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="panel-main-menu" _description="Show the activities overview"/>
 | 
			
		||||
	<KeyListEntry name="panel-main-menu" description="Show the activities overview"/>
 | 
			
		||||
 | 
			
		||||
</KeyListEntries>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										50
									
								
								data/50-mutter-windows.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								data/50-mutter-windows.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8" ?>
 | 
			
		||||
<KeyListEntries schema="org.gnome.desktop.wm.keybindings"
 | 
			
		||||
                group="system"
 | 
			
		||||
                name="Windows"
 | 
			
		||||
                wm_name="Mutter"
 | 
			
		||||
                package="mutter">
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="activate-window-menu" description="Activate the window menu"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="toggle-fullscreen" description="Toggle fullscreen mode"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="toggle-maximized" description="Toggle maximization state"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="maximize" description="Maximize window"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="unmaximize" description="Restore window"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="toggle-shaded" description="Toggle shaded state"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="close" description="Close window"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="minimize" description="Hide window"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="begin-move" description="Move window"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="begin-resize" description="Resize window"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="toggle-on-all-workspaces"
 | 
			
		||||
	              description="Toggle window on all workspaces or one"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="raise-or-lower" description="Raise window if covered, otherwise lower it"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="raise" description="Raise window above other windows"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="lower" description="Lower window below other windows"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="maximize-vertically" description="Maximize window vertically"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="maximize-horizontally" description="Maximize window horizontally"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="toggle-tiled-left"
 | 
			
		||||
                      schema="org.gnome.mutter.keybindings"
 | 
			
		||||
                      description="View split on left"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="toggle-tiled-right"
 | 
			
		||||
                      schema="org.gnome.mutter.keybindings"
 | 
			
		||||
                      description="View split on right"/>
 | 
			
		||||
 | 
			
		||||
</KeyListEntries>
 | 
			
		||||
 | 
			
		||||
@@ -1,50 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8" ?>
 | 
			
		||||
<KeyListEntries schema="org.gnome.desktop.wm.keybindings"
 | 
			
		||||
                group="system"
 | 
			
		||||
                _name="Windows"
 | 
			
		||||
                wm_name="Mutter"
 | 
			
		||||
                package="mutter">
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="activate-window-menu" _description="Activate the window menu"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="toggle-fullscreen" _description="Toggle fullscreen mode"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="toggle-maximized" _description="Toggle maximization state"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="maximize" _description="Maximize window"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="unmaximize" _description="Restore window"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="toggle-shaded" _description="Toggle shaded state"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="close" _description="Close window"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="minimize" _description="Hide window"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="begin-move" _description="Move window"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="begin-resize" _description="Resize window"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="toggle-on-all-workspaces"
 | 
			
		||||
	              _description="Toggle window on all workspaces or one"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="raise-or-lower" _description="Raise window if covered, otherwise lower it"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="raise" _description="Raise window above other windows"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="lower" _description="Lower window below other windows"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="maximize-vertically" _description="Maximize window vertically"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="maximize-horizontally" _description="Maximize window horizontally"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="toggle-tiled-left"
 | 
			
		||||
                      schema="org.gnome.mutter.keybindings"
 | 
			
		||||
                      _description="View split on left"/>
 | 
			
		||||
 | 
			
		||||
	<KeyListEntry name="toggle-tiled-right"
 | 
			
		||||
                      schema="org.gnome.mutter.keybindings"
 | 
			
		||||
                      _description="View split on right"/>
 | 
			
		||||
 | 
			
		||||
</KeyListEntries>
 | 
			
		||||
 | 
			
		||||
@@ -3,21 +3,24 @@ desktopfiles_in_files = \
 | 
			
		||||
desktopfilesdir = $(datadir)/applications
 | 
			
		||||
desktopfiles_DATA = $(desktopfiles_in_files:.desktop.in=.desktop)
 | 
			
		||||
 | 
			
		||||
@INTLTOOL_DESKTOP_RULE@
 | 
			
		||||
%.desktop:%.desktop.in
 | 
			
		||||
	$(AM_V_GET) $(MSGFMT) --desktop --template $< -d $(top_srcdir)/po -o $@
 | 
			
		||||
 | 
			
		||||
xml_in_files = \
 | 
			
		||||
        50-mutter-navigation.xml.in \
 | 
			
		||||
        50-mutter-system.xml.in \
 | 
			
		||||
        50-mutter-windows.xml.in
 | 
			
		||||
xmldir = $(GNOME_KEYBINDINGS_KEYSDIR)
 | 
			
		||||
xml_DATA = $(xml_in_files:.xml.in=.xml)
 | 
			
		||||
xml_DATA = \
 | 
			
		||||
        50-mutter-navigation.xml \
 | 
			
		||||
        50-mutter-system.xml \
 | 
			
		||||
        50-mutter-windows.xml
 | 
			
		||||
 | 
			
		||||
gschema_in_files = \
 | 
			
		||||
	org.gnome.mutter.gschema.xml.in	\
 | 
			
		||||
	org.gnome.mutter.wayland.gschema.xml.in
 | 
			
		||||
gsettings_SCHEMAS = $(gschema_in_files:.xml.in=.xml)
 | 
			
		||||
 | 
			
		||||
@INTLTOOL_XML_NOMERGE_RULE@
 | 
			
		||||
%.gschema.xml: %.gschema.xml.in Makefile
 | 
			
		||||
	$(AM_V_GEN) sed -e 's|@GETTEXT_DOMAIN[@]|$(GETTEXT_DOMAIN)|g' \
 | 
			
		||||
	$< > $@ || rm $@
 | 
			
		||||
 | 
			
		||||
@GSETTINGS_RULES@
 | 
			
		||||
 | 
			
		||||
convertdir = $(datadir)/GConf/gsettings
 | 
			
		||||
@@ -25,11 +28,10 @@ convert_DATA = mutter-schemas.convert
 | 
			
		||||
 | 
			
		||||
CLEANFILES = \
 | 
			
		||||
	$(desktopfiles_DATA) \
 | 
			
		||||
	$(gsettings_SCHEMAS) \
 | 
			
		||||
	$(xml_DATA)
 | 
			
		||||
	$(gsettings_SCHEMAS)
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST = \
 | 
			
		||||
	$(convert_DATA) \
 | 
			
		||||
	$(desktopfiles_in_files) \
 | 
			
		||||
	$(gschema_in_files) \
 | 
			
		||||
	$(xml_in_files)
 | 
			
		||||
	$(xml_DATA)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
[Desktop Entry]
 | 
			
		||||
Type=Application
 | 
			
		||||
_Name=Mutter
 | 
			
		||||
Name=Mutter
 | 
			
		||||
Exec=mutter
 | 
			
		||||
NoDisplay=true
 | 
			
		||||
# name of loadable control center module
 | 
			
		||||
 
 | 
			
		||||
@@ -4,102 +4,102 @@
 | 
			
		||||
 | 
			
		||||
    <key name="overlay-key" type="s">
 | 
			
		||||
      <default>'Super_L'</default>
 | 
			
		||||
      <_summary>Modifier to use for extended window management operations</_summary>
 | 
			
		||||
      <_description>
 | 
			
		||||
      <summary>Modifier to use for extended window management operations</summary>
 | 
			
		||||
      <description>
 | 
			
		||||
        This key will initiate the "overlay", which is a combination window
 | 
			
		||||
        overview and application launching system.  The default is intended
 | 
			
		||||
        to be the "Windows key" on PC hardware.
 | 
			
		||||
 | 
			
		||||
        It's expected that this binding either the default or set to
 | 
			
		||||
        the empty string.
 | 
			
		||||
      </_description>
 | 
			
		||||
      </description>
 | 
			
		||||
    </key>
 | 
			
		||||
 | 
			
		||||
    <key name="attach-modal-dialogs" type="b">
 | 
			
		||||
      <default>false</default>
 | 
			
		||||
      <_summary>Attach modal dialogs</_summary>
 | 
			
		||||
      <_description>
 | 
			
		||||
      <summary>Attach modal dialogs</summary>
 | 
			
		||||
      <description>
 | 
			
		||||
        When true, instead of having independent titlebars, modal dialogs
 | 
			
		||||
        appear attached to the titlebar of the parent window and are moved
 | 
			
		||||
        together with the parent window.
 | 
			
		||||
      </_description>
 | 
			
		||||
      </description>
 | 
			
		||||
    </key>
 | 
			
		||||
 | 
			
		||||
    <key name="edge-tiling" type="b">
 | 
			
		||||
      <default>false</default>
 | 
			
		||||
      <_summary>Enable edge tiling when dropping windows on screen edges</_summary>
 | 
			
		||||
      <_description>
 | 
			
		||||
      <summary>Enable edge tiling when dropping windows on screen edges</summary>
 | 
			
		||||
      <description>
 | 
			
		||||
        If enabled, dropping windows on vertical screen edges maximizes them
 | 
			
		||||
        vertically and resizes them horizontally to cover half of the available
 | 
			
		||||
        area. Dropping windows on the top screen edge maximizes them completely.
 | 
			
		||||
      </_description>
 | 
			
		||||
      </description>
 | 
			
		||||
    </key>
 | 
			
		||||
 | 
			
		||||
    <key name="dynamic-workspaces" type="b">
 | 
			
		||||
      <default>false</default>
 | 
			
		||||
      <_summary>Workspaces are managed dynamically</_summary>
 | 
			
		||||
      <_description>
 | 
			
		||||
      <summary>Workspaces are managed dynamically</summary>
 | 
			
		||||
      <description>
 | 
			
		||||
        Determines whether workspaces are managed dynamically or
 | 
			
		||||
        whether there's a static number of workspaces (determined
 | 
			
		||||
        by the num-workspaces key in org.gnome.desktop.wm.preferences).
 | 
			
		||||
      </_description>
 | 
			
		||||
      </description>
 | 
			
		||||
    </key>
 | 
			
		||||
 | 
			
		||||
    <key name="workspaces-only-on-primary" type="b">
 | 
			
		||||
      <default>false</default>
 | 
			
		||||
      <_summary>Workspaces only on primary</_summary>
 | 
			
		||||
      <_description>
 | 
			
		||||
      <summary>Workspaces only on primary</summary>
 | 
			
		||||
      <description>
 | 
			
		||||
        Determines whether workspace switching should happen for windows
 | 
			
		||||
        on all monitors or only for windows on the primary monitor.
 | 
			
		||||
      </_description>
 | 
			
		||||
      </description>
 | 
			
		||||
    </key>
 | 
			
		||||
 | 
			
		||||
    <key name="no-tab-popup" type="b">
 | 
			
		||||
      <default>false</default>
 | 
			
		||||
      <_summary>No tab popup</_summary>
 | 
			
		||||
      <_description>
 | 
			
		||||
      <summary>No tab popup</summary>
 | 
			
		||||
      <description>
 | 
			
		||||
        Determines whether the use of popup and highlight frame should
 | 
			
		||||
        be disabled for window cycling.
 | 
			
		||||
      </_description>
 | 
			
		||||
      </description>
 | 
			
		||||
    </key>
 | 
			
		||||
 | 
			
		||||
    <key name="focus-change-on-pointer-rest" type="b">
 | 
			
		||||
      <default>false</default>
 | 
			
		||||
      <_summary>Delay focus changes until the pointer stops moving</_summary>
 | 
			
		||||
      <_description>
 | 
			
		||||
      <summary>Delay focus changes until the pointer stops moving</summary>
 | 
			
		||||
      <description>
 | 
			
		||||
        If set to true, and the focus mode is either "sloppy" or "mouse"
 | 
			
		||||
        then the focus will not be changed immediately when entering a
 | 
			
		||||
        window, but only after the pointer stops moving.
 | 
			
		||||
      </_description>
 | 
			
		||||
      </description>
 | 
			
		||||
    </key>
 | 
			
		||||
 | 
			
		||||
    <key name="draggable-border-width" type="i">
 | 
			
		||||
      <default>10</default>
 | 
			
		||||
      <range min="0" max="64"/>
 | 
			
		||||
      <_summary>Draggable border width</_summary>
 | 
			
		||||
      <_description>
 | 
			
		||||
      <summary>Draggable border width</summary>
 | 
			
		||||
      <description>
 | 
			
		||||
          The amount of total draggable borders. If the theme's visible
 | 
			
		||||
          borders are not enough, invisible borders will be added to meet
 | 
			
		||||
          this value.
 | 
			
		||||
      </_description>
 | 
			
		||||
      </description>
 | 
			
		||||
    </key>
 | 
			
		||||
 | 
			
		||||
    <key name="auto-maximize" type="b">
 | 
			
		||||
      <default>true</default>
 | 
			
		||||
      <_summary>Auto maximize nearly monitor sized windows</_summary>
 | 
			
		||||
      <_description>
 | 
			
		||||
      <summary>Auto maximize nearly monitor sized windows</summary>
 | 
			
		||||
      <description>
 | 
			
		||||
        If enabled, new windows that are initially the size of the monitor
 | 
			
		||||
        automatically get maximized.
 | 
			
		||||
      </_description>
 | 
			
		||||
      </description>
 | 
			
		||||
    </key>
 | 
			
		||||
 | 
			
		||||
    <key name="center-new-windows" type="b">
 | 
			
		||||
      <default>false</default>
 | 
			
		||||
      <_summary>Place new windows in the center</_summary>
 | 
			
		||||
      <_description>
 | 
			
		||||
      <summary>Place new windows in the center</summary>
 | 
			
		||||
      <description>
 | 
			
		||||
        When true, the new windows will always be put in the center of the
 | 
			
		||||
        active screen of the monitor.
 | 
			
		||||
      </_description>
 | 
			
		||||
      </description>
 | 
			
		||||
    </key>
 | 
			
		||||
 | 
			
		||||
    <child name="keybindings" schema="org.gnome.mutter.keybindings"/>
 | 
			
		||||
@@ -117,12 +117,12 @@
 | 
			
		||||
 | 
			
		||||
    <key name="tab-popup-select" type="as">
 | 
			
		||||
      <default>[]</default>
 | 
			
		||||
      <_summary>Select window from tab popup</_summary>
 | 
			
		||||
      <summary>Select window from tab popup</summary>
 | 
			
		||||
    </key>
 | 
			
		||||
 | 
			
		||||
    <key name="tab-popup-cancel" type="as">
 | 
			
		||||
      <default>[]</default>
 | 
			
		||||
      <_summary>Cancel tab popup</_summary>
 | 
			
		||||
      <summary>Cancel tab popup</summary>
 | 
			
		||||
    </key>
 | 
			
		||||
 | 
			
		||||
  </schema>
 | 
			
		||||
 
 | 
			
		||||
@@ -3,51 +3,51 @@
 | 
			
		||||
	  gettext-domain="@GETTEXT_DOMAIN@">
 | 
			
		||||
    <key name="switch-to-session-1" type="as">
 | 
			
		||||
      <default><![CDATA[['<Primary><Alt>F1']]]></default>
 | 
			
		||||
      <_summary>Switch to VT 1</_summary>
 | 
			
		||||
      <summary>Switch to VT 1</summary>
 | 
			
		||||
    </key>
 | 
			
		||||
    <key name="switch-to-session-2" type="as">
 | 
			
		||||
      <default><![CDATA[['<Primary><Alt>F2']]]></default>
 | 
			
		||||
      <_summary>Switch to VT 2</_summary>
 | 
			
		||||
      <summary>Switch to VT 2</summary>
 | 
			
		||||
    </key>
 | 
			
		||||
    <key name="switch-to-session-3" type="as">
 | 
			
		||||
      <default><![CDATA[['<Primary><Alt>F3']]]></default>
 | 
			
		||||
      <_summary>Switch to VT 3</_summary>
 | 
			
		||||
      <summary>Switch to VT 3</summary>
 | 
			
		||||
    </key>
 | 
			
		||||
    <key name="switch-to-session-4" type="as">
 | 
			
		||||
      <default><![CDATA[['<Primary><Alt>F4']]]></default>
 | 
			
		||||
      <_summary>Switch to VT 4</_summary>
 | 
			
		||||
      <summary>Switch to VT 4</summary>
 | 
			
		||||
    </key>
 | 
			
		||||
    <key name="switch-to-session-5" type="as">
 | 
			
		||||
      <default><![CDATA[['<Primary><Alt>F5']]]></default>
 | 
			
		||||
      <_summary>Switch to VT 5</_summary>
 | 
			
		||||
      <summary>Switch to VT 5</summary>
 | 
			
		||||
    </key>
 | 
			
		||||
    <key name="switch-to-session-6" type="as">
 | 
			
		||||
      <default><![CDATA[['<Primary><Alt>F6']]]></default>
 | 
			
		||||
      <_summary>Switch to VT 6</_summary>
 | 
			
		||||
      <summary>Switch to VT 6</summary>
 | 
			
		||||
    </key>
 | 
			
		||||
    <key name="switch-to-session-7" type="as">
 | 
			
		||||
      <default><![CDATA[['<Primary><Alt>F7']]]></default>
 | 
			
		||||
      <_summary>Switch to VT 7</_summary>
 | 
			
		||||
      <summary>Switch to VT 7</summary>
 | 
			
		||||
    </key>
 | 
			
		||||
    <key name="switch-to-session-8" type="as">
 | 
			
		||||
      <default><![CDATA[['<Primary><Alt>F8']]]></default>
 | 
			
		||||
      <_summary>Switch to VT 8</_summary>
 | 
			
		||||
      <summary>Switch to VT 8</summary>
 | 
			
		||||
    </key>
 | 
			
		||||
    <key name="switch-to-session-9" type="as">
 | 
			
		||||
      <default><![CDATA[['<Primary><Alt>F9']]]></default>
 | 
			
		||||
      <_summary>Switch to VT 9</_summary>
 | 
			
		||||
      <summary>Switch to VT 9</summary>
 | 
			
		||||
    </key>
 | 
			
		||||
    <key name="switch-to-session-10" type="as">
 | 
			
		||||
      <default><![CDATA[['<Primary><Alt>F10']]]></default>
 | 
			
		||||
      <_summary>Switch to VT 10</_summary>
 | 
			
		||||
      <summary>Switch to VT 10</summary>
 | 
			
		||||
    </key>
 | 
			
		||||
    <key name="switch-to-session-11" type="as">
 | 
			
		||||
      <default><![CDATA[['<Primary><Alt>F11']]]></default>
 | 
			
		||||
      <_summary>Switch to VT 11</_summary>
 | 
			
		||||
      <summary>Switch to VT 11</summary>
 | 
			
		||||
    </key>
 | 
			
		||||
    <key name="switch-to-session-12" type="as">
 | 
			
		||||
      <default><![CDATA[['<Primary><Alt>F12']]]></default>
 | 
			
		||||
      <_summary>Switch to VT 12</_summary>
 | 
			
		||||
      <summary>Switch to VT 12</summary>
 | 
			
		||||
    </key>
 | 
			
		||||
  </schema>
 | 
			
		||||
</schemalist>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										68
									
								
								po/Makevars
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								po/Makevars
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,68 @@
 | 
			
		||||
# Makefile variables for PO directory in any package using GNU gettext.
 | 
			
		||||
 | 
			
		||||
# Usually the message domain is the same as the package name.
 | 
			
		||||
DOMAIN = $(PACKAGE)
 | 
			
		||||
 | 
			
		||||
# These two variables depend on the location of this directory.
 | 
			
		||||
subdir = po
 | 
			
		||||
top_builddir = ..
 | 
			
		||||
 | 
			
		||||
# These options get passed to xgettext.
 | 
			
		||||
XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ \
 | 
			
		||||
        --keyword=C_:1c,2 --keyword=NC_:1c,2 \
 | 
			
		||||
        --keyword=g_dngettext:2,3 \
 | 
			
		||||
        --flag=g_dngettext:2:pass-c-format \
 | 
			
		||||
        --flag=g_strdup_printf:1:c-format \
 | 
			
		||||
        --flag=g_string_printf:2:c-format \
 | 
			
		||||
        --flag=g_string_append_printf:2:c-format \
 | 
			
		||||
        --flag=g_error_new:3:c-format \
 | 
			
		||||
        --flag=g_set_error:4:c-format \
 | 
			
		||||
        --flag=g_markup_printf_escaped:1:c-format \
 | 
			
		||||
        --flag=g_log:3:c-format \
 | 
			
		||||
        --flag=g_print:1:c-format \
 | 
			
		||||
        --flag=g_printerr:1:c-format \
 | 
			
		||||
        --flag=g_printf:1:c-format \
 | 
			
		||||
        --flag=g_fprintf:2:c-format \
 | 
			
		||||
        --flag=g_sprintf:2:c-format \
 | 
			
		||||
        --flag=g_snprintf:3:c-format
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# This is the copyright holder that gets inserted into the header of the
 | 
			
		||||
# $(DOMAIN).pot file.  Set this to the copyright holder of the surrounding
 | 
			
		||||
# package.  (Note that the msgstr strings, extracted from the package's
 | 
			
		||||
# sources, belong to the copyright holder of the package.)  Translators are
 | 
			
		||||
# expected to transfer the copyright for their translations to this person
 | 
			
		||||
# or entity, or to disclaim their copyright.  The empty string stands for
 | 
			
		||||
# the public domain; in this case the translators are expected to disclaim
 | 
			
		||||
# their copyright.
 | 
			
		||||
COPYRIGHT_HOLDER = Translation copyright holder
 | 
			
		||||
# This is the email address or URL to which the translators shall report
 | 
			
		||||
# bugs in the untranslated strings:
 | 
			
		||||
# - Strings which are not entire sentences, see the maintainer guidelines
 | 
			
		||||
#   in the GNU gettext documentation, section 'Preparing Strings'.
 | 
			
		||||
# - Strings which use unclear terms or require additional context to be
 | 
			
		||||
#   understood.
 | 
			
		||||
# - Strings which make invalid assumptions about notation of date, time or
 | 
			
		||||
#   money.
 | 
			
		||||
# - Pluralisation problems.
 | 
			
		||||
# - Incorrect English spelling.
 | 
			
		||||
# - Incorrect formatting.
 | 
			
		||||
# It can be your email address, or a mailing list address where translators
 | 
			
		||||
# can write to without being subscribed, or the URL of a web page through
 | 
			
		||||
# which the translators can contact you.
 | 
			
		||||
MSGID_BUGS_ADDRESS = http://bugzilla.gnome.org/enter_bug.cgi?product=mutter&keywords=I18N+L10N&component=general
 | 
			
		||||
 | 
			
		||||
# This is the list of locale categories, beyond LC_MESSAGES, for which the
 | 
			
		||||
# message catalogs shall be used.  It is usually empty.
 | 
			
		||||
EXTRA_LOCALE_CATEGORIES =
 | 
			
		||||
 | 
			
		||||
# Ignore the timestamp of the .pot file, as git clones do not have
 | 
			
		||||
# deterministic timestamps, and .po files are updated by translators
 | 
			
		||||
# (only) in GNOME projects.
 | 
			
		||||
PO_DEPENDS_ON_POT = no
 | 
			
		||||
 | 
			
		||||
# This tells whether or not to forcibly update $(DOMAIN).pot and
 | 
			
		||||
# regenerate PO files on "make dist".  Possible values are "yes" and
 | 
			
		||||
# "no".  Set this to no if the POT file and PO files are maintained
 | 
			
		||||
# externally.
 | 
			
		||||
DIST_DEPENDS_ON_UPDATE_PO = no
 | 
			
		||||
@@ -1,11 +1,12 @@
 | 
			
		||||
# List of source files containing translatable strings.
 | 
			
		||||
# Please keep this file sorted alphabetically.
 | 
			
		||||
data/50-mutter-navigation.xml.in
 | 
			
		||||
data/50-mutter-system.xml.in
 | 
			
		||||
data/50-mutter-windows.xml.in
 | 
			
		||||
data/50-mutter-navigation.xml
 | 
			
		||||
data/50-mutter-system.xml
 | 
			
		||||
data/50-mutter-windows.xml
 | 
			
		||||
data/mutter.desktop.in
 | 
			
		||||
data/org.gnome.mutter.gschema.xml.in
 | 
			
		||||
data/org.gnome.mutter.wayland.gschema.xml.in
 | 
			
		||||
src/backends/meta-input-settings.c
 | 
			
		||||
src/backends/meta-monitor-manager.c
 | 
			
		||||
src/compositor/compositor.c
 | 
			
		||||
src/compositor/meta-background.c
 | 
			
		||||
@@ -23,6 +24,7 @@ src/core/util.c
 | 
			
		||||
src/core/window.c
 | 
			
		||||
src/ui/frames.c
 | 
			
		||||
src/ui/theme.c
 | 
			
		||||
src/wayland/meta-wayland-tablet-pad.c
 | 
			
		||||
src/x11/session.c
 | 
			
		||||
src/x11/window-props.c
 | 
			
		||||
src/x11/xprops.c
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,12 @@
 | 
			
		||||
# List of source files that should NOT be translated.
 | 
			
		||||
# Please keep this file sorted alphabetically.
 | 
			
		||||
 | 
			
		||||
clutter/clutter/clutter-actor-meta.c
 | 
			
		||||
clutter/clutter/clutter-actor.c
 | 
			
		||||
clutter/clutter/clutter-actor-meta.c
 | 
			
		||||
clutter/clutter/clutter-align-constraint.c
 | 
			
		||||
clutter/clutter/clutter-backend.c
 | 
			
		||||
clutter/clutter/clutter-bin-layout.c
 | 
			
		||||
clutter/clutter/clutter-bind-constraint.c
 | 
			
		||||
clutter/clutter/clutter-binding-pool.c
 | 
			
		||||
clutter/clutter/clutter-bin-layout.c
 | 
			
		||||
clutter/clutter/clutter-box-layout.c
 | 
			
		||||
clutter/clutter/clutter-brightness-contrast-effect.c
 | 
			
		||||
clutter/clutter/clutter-canvas.c
 | 
			
		||||
@@ -52,17 +51,18 @@ clutter/clutter/clutter-text.c
 | 
			
		||||
clutter/clutter/clutter-timeline.c
 | 
			
		||||
clutter/clutter/clutter-transition.c
 | 
			
		||||
clutter/clutter/clutter-units.c
 | 
			
		||||
clutter/clutter/clutter-virtual-input-device.c
 | 
			
		||||
clutter/clutter/clutter-zoom-action.c
 | 
			
		||||
clutter/clutter/deprecated/clutter-alpha.c
 | 
			
		||||
clutter/clutter/deprecated/clutter-animation.c
 | 
			
		||||
clutter/clutter/deprecated/clutter-animator.c
 | 
			
		||||
clutter/clutter/deprecated/clutter-behaviour.c
 | 
			
		||||
clutter/clutter/deprecated/clutter-behaviour-depth.c
 | 
			
		||||
clutter/clutter/deprecated/clutter-behaviour-ellipse.c
 | 
			
		||||
clutter/clutter/deprecated/clutter-behaviour-opacity.c
 | 
			
		||||
clutter/clutter/deprecated/clutter-behaviour-path.c
 | 
			
		||||
clutter/clutter/deprecated/clutter-behaviour-rotate.c
 | 
			
		||||
clutter/clutter/deprecated/clutter-behaviour-scale.c
 | 
			
		||||
clutter/clutter/deprecated/clutter-behaviour.c
 | 
			
		||||
clutter/clutter/deprecated/clutter-box.c
 | 
			
		||||
clutter/clutter/deprecated/clutter-cairo-texture.c
 | 
			
		||||
clutter/clutter/deprecated/clutter-fixed.c
 | 
			
		||||
@@ -72,9 +72,10 @@ clutter/clutter/deprecated/clutter-shader.c
 | 
			
		||||
clutter/clutter/deprecated/clutter-state.c
 | 
			
		||||
clutter/clutter/deprecated/clutter-table-layout.c
 | 
			
		||||
clutter/clutter/deprecated/clutter-texture.c
 | 
			
		||||
clutter/clutter/evdev/clutter-virtual-input-device-evdev.c
 | 
			
		||||
clutter/clutter/wayland/clutter-wayland-surface.c
 | 
			
		||||
clutter/clutter/x11/clutter-backend-x11.c
 | 
			
		||||
clutter/clutter/x11/clutter-keymap-x11.c
 | 
			
		||||
clutter/clutter/x11/clutter-x11-texture-pixmap.c
 | 
			
		||||
cogl/cogl/cogl-debug-options.h
 | 
			
		||||
cogl/cogl/cogl-debug.c
 | 
			
		||||
cogl/cogl/cogl-debug-options.h
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/am.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/am.po
									
									
									
									
									
								
							@@ -12,6 +12,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2003-02-03 10:16+EDT\n"
 | 
			
		||||
"Last-Translator: Ge'ez Frontier Foundation <locales@geez.org>\n"
 | 
			
		||||
"Language-Team: Amharic <locales@geez.org>\n"
 | 
			
		||||
"Language: am\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=utf-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								po/as.po
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								po/as.po
									
									
									
									
									
								
							@@ -14,7 +14,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2014-08-18 21:37+0530\n"
 | 
			
		||||
"Last-Translator: Nilamdyuti Goswami <ngoswami@redhat.com>\n"
 | 
			
		||||
"Language-Team: Assamese <kde-i18n-doc@kde.org>\n"
 | 
			
		||||
"Language: as_IN\n"
 | 
			
		||||
"Language: as\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								po/az.po
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								po/az.po
									
									
									
									
									
								
							@@ -12,10 +12,10 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2004-08-17 21:53+0300\n"
 | 
			
		||||
"Last-Translator: Metin Amiroff <metin@karegen.com>\n"
 | 
			
		||||
"Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
 | 
			
		||||
"Language: az\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"net>\n"
 | 
			
		||||
"X-Generator: KBabel 1.3.1\n"
 | 
			
		||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2009-02-14 19:37+0200\n"
 | 
			
		||||
"Last-Translator: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>\n"
 | 
			
		||||
"Language-Team: i18n@mova.org <i18n@mova.org>\n"
 | 
			
		||||
"Language: be@latin\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=utf-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/bn.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/bn.po
									
									
									
									
									
								
							@@ -13,6 +13,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2005-10-03 01:16+0600\n"
 | 
			
		||||
"Last-Translator: Mahay Alam Khan <makl10n@yahoo.com>\n"
 | 
			
		||||
"Language-Team: Bengali <gnome-trans@bengalinux.org>\n"
 | 
			
		||||
"Language: bn\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2014-09-25 13:56+0000\n"
 | 
			
		||||
"Last-Translator: \n"
 | 
			
		||||
"Language-Team: Bengali (India) <kde-i18n-doc@kde.org>\n"
 | 
			
		||||
"Language: bn-IN\n"
 | 
			
		||||
"Language: bn_IN\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/br.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/br.po
									
									
									
									
									
								
							@@ -12,6 +12,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2009-09-14 04:51+0100\n"
 | 
			
		||||
"Last-Translator: Denis\n"
 | 
			
		||||
"Language-Team: Brenux <brenux@free.fr>\n"
 | 
			
		||||
"Language: br\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2014-09-14 21:12+0200\n"
 | 
			
		||||
"Last-Translator: Gil Forcada <gilforcada@guifi.net>\n"
 | 
			
		||||
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
 | 
			
		||||
"Language: ca-XV\n"
 | 
			
		||||
"Language: ca@valencia\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bits\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										68
									
								
								po/cs.po
									
									
									
									
									
								
							
							
						
						
									
										68
									
								
								po/cs.po
									
									
									
									
									
								
							@@ -6,22 +6,23 @@
 | 
			
		||||
# Petr Tomeš <ptomes@gmail.com>, 2006.
 | 
			
		||||
# Jakub Friedl <jfriedl@suse.cz>, 2006, 2007.
 | 
			
		||||
# Petr Kovar <pknbe@volny.cz>, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014.
 | 
			
		||||
# Marek Černocký <marek@manet.cz>, 2012, 2013, 2014.
 | 
			
		||||
# Marek Černocký <marek@manet.cz>, 2012, 2013, 2014, 2016.
 | 
			
		||||
#
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: mutter\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
 | 
			
		||||
"product=mutter&keywords=I18N+L10N&component=general\n"
 | 
			
		||||
"POT-Creation-Date: 2016-02-27 13:36+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2014-09-22 15:01+0200\n"
 | 
			
		||||
"Last-Translator: Petr Kovar <pknbe@volny.cz>\n"
 | 
			
		||||
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
 | 
			
		||||
"POT-Creation-Date: 2016-08-16 12:01+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2016-08-17 13:15+0200\n"
 | 
			
		||||
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
 | 
			
		||||
"Language-Team: čeština <gnome-cs-list@gnome.org>\n"
 | 
			
		||||
"Language: cs\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 | 
			
		||||
"X-Generator: Virtaal 0.7.1\n"
 | 
			
		||||
"X-Generator: Gtranslator 2.91.7\n"
 | 
			
		||||
"X-Project-Style: gnome\n"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:1
 | 
			
		||||
@@ -456,36 +457,45 @@ msgstr "Přepnout na VT 11"
 | 
			
		||||
msgid "Switch to VT 12"
 | 
			
		||||
msgstr "Přepnout na VT 12"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:518
 | 
			
		||||
#: ../src/backends/meta-input-settings.c:1707
 | 
			
		||||
#| msgid "Switch system controls"
 | 
			
		||||
msgid "Switch monitor"
 | 
			
		||||
msgstr "Přepnout monitor"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-input-settings.c:1709
 | 
			
		||||
msgid "Show on-screen help"
 | 
			
		||||
msgstr "Zobrazit nápovědu na obrazovce"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:514
 | 
			
		||||
msgid "Built-in display"
 | 
			
		||||
msgstr "Vestavěný displej"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:544
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:537
 | 
			
		||||
msgid "Unknown"
 | 
			
		||||
msgstr "Neznámý"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:546
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:539
 | 
			
		||||
msgid "Unknown Display"
 | 
			
		||||
msgstr "Neznámý displej"
 | 
			
		||||
 | 
			
		||||
#. TRANSLATORS: this is a monitor vendor name, followed by a
 | 
			
		||||
#. * size in inches, like 'Dell 15"'
 | 
			
		||||
#.
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:554
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:547
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s %s"
 | 
			
		||||
msgstr "%s %s"
 | 
			
		||||
 | 
			
		||||
#. This probably means that a non-WM compositor like xcompmgr is running;
 | 
			
		||||
#. * we have no way to get it to exit
 | 
			
		||||
#: ../src/compositor/compositor.c:456
 | 
			
		||||
#: ../src/compositor/compositor.c:463
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Another compositing manager is already running on screen %i on display \"%s"
 | 
			
		||||
"\"."
 | 
			
		||||
msgstr "Jiný kompozitní správce již běží na obrazovce %i displeje „%s“."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/bell.c:185
 | 
			
		||||
#: ../src/core/bell.c:194
 | 
			
		||||
msgid "Bell event"
 | 
			
		||||
msgstr "Událost zvonku"
 | 
			
		||||
 | 
			
		||||
@@ -514,44 +524,44 @@ msgstr "_Počkat"
 | 
			
		||||
msgid "_Force Quit"
 | 
			
		||||
msgstr "_Vynutit ukončení"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/display.c:555
 | 
			
		||||
#: ../src/core/display.c:590
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Failed to open X Window System display '%s'\n"
 | 
			
		||||
msgstr "Nelze otevřít displej X Window System „%s“\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:181
 | 
			
		||||
#: ../src/core/main.c:182
 | 
			
		||||
msgid "Disable connection to session manager"
 | 
			
		||||
msgstr "Zakáže připojení ke správci sezení"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:187
 | 
			
		||||
#: ../src/core/main.c:188
 | 
			
		||||
msgid "Replace the running window manager"
 | 
			
		||||
msgstr "Nahradí běžícího správce oken"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:193
 | 
			
		||||
#: ../src/core/main.c:194
 | 
			
		||||
msgid "Specify session management ID"
 | 
			
		||||
msgstr "Určení ID správy sezení"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:198
 | 
			
		||||
#: ../src/core/main.c:199
 | 
			
		||||
msgid "X Display to use"
 | 
			
		||||
msgstr "Displej X, který použije"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:204
 | 
			
		||||
#: ../src/core/main.c:205
 | 
			
		||||
msgid "Initialize session from savefile"
 | 
			
		||||
msgstr "Spustí sezení z uloženého souboru"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:210
 | 
			
		||||
#: ../src/core/main.c:211
 | 
			
		||||
msgid "Make X calls synchronous"
 | 
			
		||||
msgstr "Provede volání X synchronně"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:217
 | 
			
		||||
#: ../src/core/main.c:218
 | 
			
		||||
msgid "Run as a wayland compositor"
 | 
			
		||||
msgstr "Spustit jako kompozitor protokolu Wayland"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:223
 | 
			
		||||
#: ../src/core/main.c:224
 | 
			
		||||
msgid "Run as a nested compositor"
 | 
			
		||||
msgstr "Spustit jako podkladový kompozitor"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:231
 | 
			
		||||
#: ../src/core/main.c:232
 | 
			
		||||
msgid "Run as a full display server, rather than nested"
 | 
			
		||||
msgstr "Spustit jako plnohodnotný server displeje, nikoliv vnořeně"
 | 
			
		||||
 | 
			
		||||
@@ -573,7 +583,7 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../src/core/mutter.c:53
 | 
			
		||||
msgid "Print version"
 | 
			
		||||
msgstr "Vypíše verzi"
 | 
			
		||||
msgstr "Vypsat verzi"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/mutter.c:59
 | 
			
		||||
msgid "Mutter plugin to use"
 | 
			
		||||
@@ -593,15 +603,20 @@ msgstr ""
 | 
			
		||||
"Displej „%s“ již správce oken má; zkuste prosím nahradit aktuálního správce "
 | 
			
		||||
"oken pomocí přepínače --replace."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:603
 | 
			
		||||
#: ../src/core/screen.c:606
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Screen %d on display '%s' is invalid\n"
 | 
			
		||||
msgstr "Obrazovka %d na displeji „%s“ je neplatná\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/util.c:121
 | 
			
		||||
#: ../src/core/util.c:120
 | 
			
		||||
msgid "Mutter was compiled without support for verbose mode\n"
 | 
			
		||||
msgstr "Mutter bylo přeloženo bez podpory podrobného režimu\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/wayland/meta-wayland-tablet-pad.c:595
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Mode Switch: Mode %d"
 | 
			
		||||
msgstr "Přepínač režimu: režim %d"
 | 
			
		||||
 | 
			
		||||
#: ../src/x11/session.c:1815
 | 
			
		||||
msgid ""
 | 
			
		||||
"These windows do not support "save current setup" and will have to "
 | 
			
		||||
@@ -610,7 +625,7 @@ msgstr ""
 | 
			
		||||
"Tato okna nepodporují "ukládání aktuálního nastavení" a po vašem "
 | 
			
		||||
"příštím přihlášení je budete muset spustit ručně."
 | 
			
		||||
 | 
			
		||||
#: ../src/x11/window-props.c:549
 | 
			
		||||
#: ../src/x11/window-props.c:548
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s (on %s)"
 | 
			
		||||
msgstr "%s (na %s)"
 | 
			
		||||
@@ -1274,4 +1289,3 @@ msgstr "%s (na %s)"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move to Another _Workspace"
 | 
			
		||||
#~ msgstr "Přes_unout na jinou plochu"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/cy.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/cy.po
									
									
									
									
									
								
							@@ -15,6 +15,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2008-02-05 21:12-0000\n"
 | 
			
		||||
"Last-Translator: Rhys Jones <rhys@sucs.org>\n"
 | 
			
		||||
"Language-Team: Cymraeg <gnome-cy@pengwyn.linux.org.uk>\n"
 | 
			
		||||
"Language: cy\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										569
									
								
								po/de.po
									
									
									
									
									
								
							
							
						
						
									
										569
									
								
								po/de.po
									
									
									
									
									
								
							@@ -13,8 +13,8 @@ msgstr ""
 | 
			
		||||
"Project-Id-Version: mutter master\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
 | 
			
		||||
"product=mutter&keywords=I18N+L10N&component=general\n"
 | 
			
		||||
"POT-Creation-Date: 2016-02-28 13:37+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2016-02-28 19:15+0100\n"
 | 
			
		||||
"POT-Creation-Date: 2016-08-19 21:04+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2016-08-21 11:45+0200\n"
 | 
			
		||||
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
 | 
			
		||||
"Language-Team: Deutsch <gnome-de@gnome.org>\n"
 | 
			
		||||
"Language: de\n"
 | 
			
		||||
@@ -22,259 +22,18 @@ msgstr ""
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 | 
			
		||||
"X-Generator: Poedit 1.8.7\n"
 | 
			
		||||
"X-Generator: Poedit 1.8.8\n"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:1
 | 
			
		||||
msgid "Navigation"
 | 
			
		||||
msgstr "Navigation"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:2
 | 
			
		||||
msgid "Move window to workspace 1"
 | 
			
		||||
msgstr "Fenster auf Arbeitsfläche 1 verschieben"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:3
 | 
			
		||||
msgid "Move window to workspace 2"
 | 
			
		||||
msgstr "Fenster auf Arbeitsfläche 2 verschieben"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:4
 | 
			
		||||
msgid "Move window to workspace 3"
 | 
			
		||||
msgstr "Fenster auf Arbeitsfläche 3 verschieben"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:5
 | 
			
		||||
msgid "Move window to workspace 4"
 | 
			
		||||
msgstr "Fenster auf Arbeitsfläche 4 verschieben"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:6
 | 
			
		||||
msgid "Move window to last workspace"
 | 
			
		||||
msgstr "Fenster auf letzte Arbeitsfläche verschieben"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:7
 | 
			
		||||
msgid "Move window one workspace to the left"
 | 
			
		||||
msgstr "Fenster eine Arbeitsfläche nach links verschieben"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:8
 | 
			
		||||
msgid "Move window one workspace to the right"
 | 
			
		||||
msgstr "Fenster eine Arbeitsfläche nach rechts verschieben"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:9
 | 
			
		||||
msgid "Move window one workspace up"
 | 
			
		||||
msgstr "Fenster eine Arbeitsfläche nach oben verschieben"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:10
 | 
			
		||||
msgid "Move window one workspace down"
 | 
			
		||||
msgstr "Fenster eine Arbeitsfläche nach unten verschieben"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:11
 | 
			
		||||
msgid "Move window one monitor to the left"
 | 
			
		||||
msgstr "Fenster einen Bildschirm nach links verschieben"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:12
 | 
			
		||||
msgid "Move window one monitor to the right"
 | 
			
		||||
msgstr "Fenster einen Bildschirm nach rechts verschieben"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:13
 | 
			
		||||
msgid "Move window one monitor up"
 | 
			
		||||
msgstr "Fenster einen Bildschirm nach oben verschieben"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:14
 | 
			
		||||
msgid "Move window one monitor down"
 | 
			
		||||
msgstr "Fenster einen Bildschirm nach unten verschieben"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:15
 | 
			
		||||
msgid "Switch applications"
 | 
			
		||||
msgstr "Anwendungen wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:16
 | 
			
		||||
msgid "Switch to previous application"
 | 
			
		||||
msgstr "Zur vorherigen Anwendung wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:17
 | 
			
		||||
msgid "Switch windows"
 | 
			
		||||
msgstr "Fenster wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:18
 | 
			
		||||
msgid "Switch to previous window"
 | 
			
		||||
msgstr "Zum vorherigen Fenster wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:19
 | 
			
		||||
msgid "Switch windows of an application"
 | 
			
		||||
msgstr "Zwischen den Fenstern einer Anwendung wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:20
 | 
			
		||||
msgid "Switch to previous window of an application"
 | 
			
		||||
msgstr "Zum vorherigen Fenster einer Anwendung wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:21
 | 
			
		||||
msgid "Switch system controls"
 | 
			
		||||
msgstr "Systemsteuerungen umschalten"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:22
 | 
			
		||||
msgid "Switch to previous system control"
 | 
			
		||||
msgstr "Zur vorherigen Systemsteuerungen wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:23
 | 
			
		||||
msgid "Switch windows directly"
 | 
			
		||||
msgstr "Fenster sofort wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:24
 | 
			
		||||
msgid "Switch directly to previous window"
 | 
			
		||||
msgstr "Direkt zum vorherigen Fenster wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:25
 | 
			
		||||
msgid "Switch windows of an app directly"
 | 
			
		||||
msgstr "Sofort zwischen den Fenstern einer Anwendung wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:26
 | 
			
		||||
msgid "Switch directly to previous window of an app"
 | 
			
		||||
msgstr "Direkt zum vorherigen Fenster einer Anwendung wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:27
 | 
			
		||||
msgid "Switch system controls directly"
 | 
			
		||||
msgstr "Systemsteuerungen sofort umschalten"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:28
 | 
			
		||||
msgid "Switch directly to previous system control"
 | 
			
		||||
msgstr "Direkt zur vorherigen Systemsteuerungen wechselen"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:29
 | 
			
		||||
msgid "Hide all normal windows"
 | 
			
		||||
msgstr "Alle normalen Fenster verbergen"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:30
 | 
			
		||||
msgid "Switch to workspace 1"
 | 
			
		||||
msgstr "Zur Arbeitsfläche 1 wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:31
 | 
			
		||||
msgid "Switch to workspace 2"
 | 
			
		||||
msgstr "Zur Arbeitsfläche 2 wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:32
 | 
			
		||||
msgid "Switch to workspace 3"
 | 
			
		||||
msgstr "Zur Arbeitsfläche 3 wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:33
 | 
			
		||||
msgid "Switch to workspace 4"
 | 
			
		||||
msgstr "Zur Arbeitsfläche 4 wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:34
 | 
			
		||||
msgid "Switch to last workspace"
 | 
			
		||||
msgstr "Zur letzten Arbeitsfläche wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:35
 | 
			
		||||
msgid "Move to workspace left"
 | 
			
		||||
msgstr "Auf Arbeitsfläche links verschieben"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:36
 | 
			
		||||
msgid "Move to workspace right"
 | 
			
		||||
msgstr "Auf Arbeitsfläche rechts verschieben"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:37
 | 
			
		||||
msgid "Move to workspace above"
 | 
			
		||||
msgstr "Auf Arbeitsfläche darüber verschieben"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:38
 | 
			
		||||
msgid "Move to workspace below"
 | 
			
		||||
msgstr "Auf Arbeitsfläche darunter verschieben"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-system.xml.in.h:1
 | 
			
		||||
msgid "System"
 | 
			
		||||
msgstr "System"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-system.xml.in.h:2
 | 
			
		||||
msgid "Show the run command prompt"
 | 
			
		||||
msgstr "Den »Befehl ausführen«-Dialog anzeigen"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-system.xml.in.h:3
 | 
			
		||||
msgid "Show the activities overview"
 | 
			
		||||
msgstr "Aktivitäten-Übersicht anzeigen"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:1
 | 
			
		||||
msgid "Windows"
 | 
			
		||||
msgstr "Fenster"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:2
 | 
			
		||||
msgid "Activate the window menu"
 | 
			
		||||
msgstr "Das Fenstermenü aktivieren"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:3
 | 
			
		||||
msgid "Toggle fullscreen mode"
 | 
			
		||||
msgstr "Vollbildmodus ein-/ausschalten"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:4
 | 
			
		||||
msgid "Toggle maximization state"
 | 
			
		||||
msgstr "Maximierungszustand ein-/ausschalten"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:5
 | 
			
		||||
msgid "Maximize window"
 | 
			
		||||
msgstr "Fenster maximieren"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:6
 | 
			
		||||
msgid "Restore window"
 | 
			
		||||
msgstr "Fenstergröße wiederherstellen"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:7
 | 
			
		||||
msgid "Toggle shaded state"
 | 
			
		||||
msgstr "Fenster ein-/ausrollen"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:8
 | 
			
		||||
msgid "Close window"
 | 
			
		||||
msgstr "Fenster schließen"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:9
 | 
			
		||||
msgid "Hide window"
 | 
			
		||||
msgstr "Fenster verbergen"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:10
 | 
			
		||||
msgid "Move window"
 | 
			
		||||
msgstr "Fenster verschieben"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:11
 | 
			
		||||
msgid "Resize window"
 | 
			
		||||
msgstr "Fenstergröße ändern"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:12
 | 
			
		||||
msgid "Toggle window on all workspaces or one"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Festlegen, ob das Fenster auf allen oder nur einer Arbeitsfläche sichtbar ist"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:13
 | 
			
		||||
msgid "Raise window if covered, otherwise lower it"
 | 
			
		||||
msgstr "Fenster anheben, falls es verdeckt ist, andernfalls absenken"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:14
 | 
			
		||||
msgid "Raise window above other windows"
 | 
			
		||||
msgstr "Fenster vor die anderen Fenster anheben"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:15
 | 
			
		||||
msgid "Lower window below other windows"
 | 
			
		||||
msgstr "Fenster hinter die anderen Fenster absenken"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:16
 | 
			
		||||
msgid "Maximize window vertically"
 | 
			
		||||
msgstr "Fenster vertikal maximieren"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:17
 | 
			
		||||
msgid "Maximize window horizontally"
 | 
			
		||||
msgstr "Fenster horizontal maximieren"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:18
 | 
			
		||||
msgid "View split on left"
 | 
			
		||||
msgstr "Ansicht links teilen"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:19
 | 
			
		||||
msgid "View split on right"
 | 
			
		||||
msgstr "Ansicht rechts teilen"
 | 
			
		||||
 | 
			
		||||
#: ../data/mutter.desktop.in.h:1
 | 
			
		||||
#: data/mutter.desktop.in:4
 | 
			
		||||
msgid "Mutter"
 | 
			
		||||
msgstr "Mutter"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:1
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:7
 | 
			
		||||
msgid "Modifier to use for extended window management operations"
 | 
			
		||||
msgstr "Zusatztaste für erweiterte Aktionen der Fensterverwaltung"
 | 
			
		||||
 | 
			
		||||
# bzw- die Apfel-Taste auf Mac-Computern
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:2
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:8
 | 
			
		||||
msgid ""
 | 
			
		||||
"This key will initiate the \"overlay\", which is a combination window "
 | 
			
		||||
"overview and application launching system. The default is intended to be the "
 | 
			
		||||
@@ -287,11 +46,11 @@ msgstr ""
 | 
			
		||||
"vorgesehen. Man geht davon aus, dass diese Tastenverknüpfung entweder die "
 | 
			
		||||
"Vorgabe ist oder als leere Zeichenkette gesetzt ist."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:3
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:20
 | 
			
		||||
msgid "Attach modal dialogs"
 | 
			
		||||
msgstr "Modale Dialoge anhängen"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:4
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:21
 | 
			
		||||
msgid ""
 | 
			
		||||
"When true, instead of having independent titlebars, modal dialogs appear "
 | 
			
		||||
"attached to the titlebar of the parent window and are moved together with "
 | 
			
		||||
@@ -301,12 +60,12 @@ msgstr ""
 | 
			
		||||
"die Titelleisten des Elternfensters angehängte modale Dialoge, welche "
 | 
			
		||||
"zusammen mit dem Elternfenster bewegt werden."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:5
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:30
 | 
			
		||||
msgid "Enable edge tiling when dropping windows on screen edges"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Kantenplatzierung beim Berühren der Bildschirmränder mit Fenstern aktivieren"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:6
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:31
 | 
			
		||||
msgid ""
 | 
			
		||||
"If enabled, dropping windows on vertical screen edges maximizes them "
 | 
			
		||||
"vertically and resizes them horizontally to cover half of the available "
 | 
			
		||||
@@ -317,11 +76,11 @@ msgstr ""
 | 
			
		||||
"Hälfte des verfügbaren Bereiches zu belegen. Eine Berührung mit dem oberen "
 | 
			
		||||
"Bildschirmrand maximiert das Fenster vollständig."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:7
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:40
 | 
			
		||||
msgid "Workspaces are managed dynamically"
 | 
			
		||||
msgstr "Arbeitsflächen sollen dynamisch verwaltet werden "
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:8
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:41
 | 
			
		||||
msgid ""
 | 
			
		||||
"Determines whether workspaces are managed dynamically or whether there's a "
 | 
			
		||||
"static number of workspaces (determined by the num-workspaces key in org."
 | 
			
		||||
@@ -331,11 +90,11 @@ msgstr ""
 | 
			
		||||
"eine feste Anzahl Arbeitsflächen gibt (welche durch den Schlüssel num-"
 | 
			
		||||
"workspaces in org.gnome.desktop.wm.preferences festgelegt wird)."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:9
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:50
 | 
			
		||||
msgid "Workspaces only on primary"
 | 
			
		||||
msgstr "Nur primärer Arbeitsflächenwechsel"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:10
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:51
 | 
			
		||||
msgid ""
 | 
			
		||||
"Determines whether workspace switching should happen for windows on all "
 | 
			
		||||
"monitors or only for windows on the primary monitor."
 | 
			
		||||
@@ -343,11 +102,11 @@ msgstr ""
 | 
			
		||||
"Legt fest, ob Arbeitsflächenwechsel für alle Fenster auf allen Bildschirmen "
 | 
			
		||||
"oder nur für Fenster auf dem primären Bildschirm ausgeführt werden soll."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:11
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:59
 | 
			
		||||
msgid "No tab popup"
 | 
			
		||||
msgstr "Keine Tab-Anzeige"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:12
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:60
 | 
			
		||||
msgid ""
 | 
			
		||||
"Determines whether the use of popup and highlight frame should be disabled "
 | 
			
		||||
"for window cycling."
 | 
			
		||||
@@ -355,11 +114,11 @@ msgstr ""
 | 
			
		||||
"Legt fest, ob beim Durchblättern der Fenster die Tab-Anzeige und die "
 | 
			
		||||
"Hervorhebung des Rahmens deaktiviert werden soll."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:13
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:68
 | 
			
		||||
msgid "Delay focus changes until the pointer stops moving"
 | 
			
		||||
msgstr "Fokus-Änderungen verzögern, bis der Zeiger aufhört sich zu bewegen"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:14
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:69
 | 
			
		||||
msgid ""
 | 
			
		||||
"If set to true, and the focus mode is either \"sloppy\" or \"mouse\" then "
 | 
			
		||||
"the focus will not be changed immediately when entering a window, but only "
 | 
			
		||||
@@ -369,12 +128,12 @@ msgstr ""
 | 
			
		||||
"»mouse« ist, wird der Fokus nicht sofort beim Erreichen eines Fensters "
 | 
			
		||||
"geändert, sondern erst, wenn der Zeiger aufhört sich zu bewegen."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:15
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:79
 | 
			
		||||
msgid "Draggable border width"
 | 
			
		||||
msgstr "Breite der ziehbaren Ränder"
 | 
			
		||||
 | 
			
		||||
# Lange Beschreibung von »Draggable border width«
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:16
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:80
 | 
			
		||||
msgid ""
 | 
			
		||||
"The amount of total draggable borders. If the theme's visible borders are "
 | 
			
		||||
"not enough, invisible borders will be added to meet this value."
 | 
			
		||||
@@ -383,11 +142,11 @@ msgstr ""
 | 
			
		||||
"nicht ausreichen, werden unsichtbare Ränder hinzugefügt, um diesen Wert zu "
 | 
			
		||||
"erreichen."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:17
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:89
 | 
			
		||||
msgid "Auto maximize nearly monitor sized windows"
 | 
			
		||||
msgstr "Fenster nahe der Bildschirmgröße automatisch maximieren"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:18
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:90
 | 
			
		||||
msgid ""
 | 
			
		||||
"If enabled, new windows that are initially the size of the monitor "
 | 
			
		||||
"automatically get maximized."
 | 
			
		||||
@@ -395,11 +154,11 @@ msgstr ""
 | 
			
		||||
"Wenn aktiviert, werden neue Fenster, die beim Öffnen nahezu die Größe des "
 | 
			
		||||
"Bildschirms haben, direkt maximiert."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:19
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:98
 | 
			
		||||
msgid "Place new windows in the center"
 | 
			
		||||
msgstr "Neue Fenster in der Mitte platzieren"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:20
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:99
 | 
			
		||||
msgid ""
 | 
			
		||||
"When true, the new windows will always be put in the center of the active "
 | 
			
		||||
"screen of the monitor."
 | 
			
		||||
@@ -407,85 +166,93 @@ msgstr ""
 | 
			
		||||
"Falls wahr, so werden neue Fenster immer in der Mitte des aktiven "
 | 
			
		||||
"Bildschirms platziert"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:21
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:120
 | 
			
		||||
msgid "Select window from tab popup"
 | 
			
		||||
msgstr "Fenster aus Tab-Anzeige auswählen"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:22
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:125
 | 
			
		||||
msgid "Cancel tab popup"
 | 
			
		||||
msgstr "Tab-Anzeige abbrechen"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:1
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:6
 | 
			
		||||
msgid "Switch to VT 1"
 | 
			
		||||
msgstr "Zum virtuellen Terminal 1 wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:2
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:10
 | 
			
		||||
msgid "Switch to VT 2"
 | 
			
		||||
msgstr "Zum virtuellen Terminal 2 wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:3
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:14
 | 
			
		||||
msgid "Switch to VT 3"
 | 
			
		||||
msgstr "Zum virtuellen Terminal 3 wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:4
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:18
 | 
			
		||||
msgid "Switch to VT 4"
 | 
			
		||||
msgstr "Zum virtuellen Terminal 4 wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:5
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:22
 | 
			
		||||
msgid "Switch to VT 5"
 | 
			
		||||
msgstr "Zum virtuellen Terminal 5 wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:6
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:26
 | 
			
		||||
msgid "Switch to VT 6"
 | 
			
		||||
msgstr "Zum virtuellen Terminal 6 wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:7
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:30
 | 
			
		||||
msgid "Switch to VT 7"
 | 
			
		||||
msgstr "Zum virtuellen Terminal 7 wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:34
 | 
			
		||||
msgid "Switch to VT 8"
 | 
			
		||||
msgstr "Zum virtuellen Terminal 8 wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:38
 | 
			
		||||
msgid "Switch to VT 9"
 | 
			
		||||
msgstr "Zum virtuellen Terminal 9 wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:42
 | 
			
		||||
msgid "Switch to VT 10"
 | 
			
		||||
msgstr "Zum virtuellen Terminal 10 wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:46
 | 
			
		||||
msgid "Switch to VT 11"
 | 
			
		||||
msgstr "Zum virtuellen Terminal 11 wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:50
 | 
			
		||||
msgid "Switch to VT 12"
 | 
			
		||||
msgstr "Zum virtuellen Terminal 12 wechseln"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:518
 | 
			
		||||
#: src/backends/meta-input-settings.c:1707
 | 
			
		||||
msgid "Switch monitor"
 | 
			
		||||
msgstr "Bildschirm wechseln"
 | 
			
		||||
 | 
			
		||||
#: src/backends/meta-input-settings.c:1709
 | 
			
		||||
msgid "Show on-screen help"
 | 
			
		||||
msgstr "Bildschirmhilfe anzeigen"
 | 
			
		||||
 | 
			
		||||
#: src/backends/meta-monitor-manager.c:514
 | 
			
		||||
msgid "Built-in display"
 | 
			
		||||
msgstr "Eingebaute Anzeige"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:544
 | 
			
		||||
#: src/backends/meta-monitor-manager.c:537
 | 
			
		||||
msgid "Unknown"
 | 
			
		||||
msgstr "Unbekannt"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:546
 | 
			
		||||
#: src/backends/meta-monitor-manager.c:539
 | 
			
		||||
msgid "Unknown Display"
 | 
			
		||||
msgstr "Unbekannte Anzeige"
 | 
			
		||||
 | 
			
		||||
#. TRANSLATORS: this is a monitor vendor name, followed by a
 | 
			
		||||
#. * size in inches, like 'Dell 15"'
 | 
			
		||||
#.
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:554
 | 
			
		||||
#: src/backends/meta-monitor-manager.c:547
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s %s"
 | 
			
		||||
msgstr "%s %s"
 | 
			
		||||
 | 
			
		||||
#. This probably means that a non-WM compositor like xcompmgr is running;
 | 
			
		||||
#. * we have no way to get it to exit
 | 
			
		||||
#: ../src/compositor/compositor.c:456
 | 
			
		||||
#: src/compositor/compositor.c:463
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Another compositing manager is already running on screen %i on display \"%s"
 | 
			
		||||
@@ -494,20 +261,20 @@ msgstr ""
 | 
			
		||||
"Ein weiterer Compositing-Verwalter läuft bereits auf Bildschirm %i der "
 | 
			
		||||
"Anzeige »%s«."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/bell.c:185
 | 
			
		||||
#: src/core/bell.c:194
 | 
			
		||||
msgid "Bell event"
 | 
			
		||||
msgstr "Klangereignis"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:127
 | 
			
		||||
#: src/core/delete.c:127
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "“%s” is not responding."
 | 
			
		||||
msgstr "»%s« antwortet nicht."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:129
 | 
			
		||||
#: src/core/delete.c:129
 | 
			
		||||
msgid "Application is not responding."
 | 
			
		||||
msgstr "Die Anwendung antwortet nicht."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:134
 | 
			
		||||
#: src/core/delete.c:134
 | 
			
		||||
msgid ""
 | 
			
		||||
"You may choose to wait a short while for it to continue or force the "
 | 
			
		||||
"application to quit entirely."
 | 
			
		||||
@@ -515,58 +282,58 @@ msgstr ""
 | 
			
		||||
"Sie können der Anwendung noch etwas Zeit geben oder ein sofortiges Beenden "
 | 
			
		||||
"erzwingen."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:141
 | 
			
		||||
#: src/core/delete.c:141
 | 
			
		||||
msgid "_Wait"
 | 
			
		||||
msgstr "_Warten"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:141
 | 
			
		||||
#: src/core/delete.c:141
 | 
			
		||||
msgid "_Force Quit"
 | 
			
		||||
msgstr "_Beenden erzwingen"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/display.c:555
 | 
			
		||||
#: src/core/display.c:590
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Failed to open X Window System display '%s'\n"
 | 
			
		||||
msgstr "X-Window-Systemanzeige »%s« konnte nicht geöffnet werden\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:181
 | 
			
		||||
#: src/core/main.c:182
 | 
			
		||||
msgid "Disable connection to session manager"
 | 
			
		||||
msgstr "Verbindung zur Sitzungsverwaltung deaktivieren"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:187
 | 
			
		||||
#: src/core/main.c:188
 | 
			
		||||
msgid "Replace the running window manager"
 | 
			
		||||
msgstr "Den aktuellen Fensterverwalter ersetzen"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:193
 | 
			
		||||
#: src/core/main.c:194
 | 
			
		||||
msgid "Specify session management ID"
 | 
			
		||||
msgstr "Kennung der Sitzungsverwaltung angeben"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:198
 | 
			
		||||
#: src/core/main.c:199
 | 
			
		||||
msgid "X Display to use"
 | 
			
		||||
msgstr "Zu verwendende X-Anzeige"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:204
 | 
			
		||||
#: src/core/main.c:205
 | 
			
		||||
msgid "Initialize session from savefile"
 | 
			
		||||
msgstr "Sitzung anhand gespeicherter Datei starten"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:210
 | 
			
		||||
#: src/core/main.c:211
 | 
			
		||||
msgid "Make X calls synchronous"
 | 
			
		||||
msgstr "X-Aufrufe abgleichen"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:217
 | 
			
		||||
#: src/core/main.c:218
 | 
			
		||||
msgid "Run as a wayland compositor"
 | 
			
		||||
msgstr "Als Wayland-Compositor ausführen"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:223
 | 
			
		||||
#: src/core/main.c:224
 | 
			
		||||
msgid "Run as a nested compositor"
 | 
			
		||||
msgstr "Als eingebetteten Compositor ausführen"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:231
 | 
			
		||||
#: src/core/main.c:232
 | 
			
		||||
msgid "Run as a full display server, rather than nested"
 | 
			
		||||
msgstr "Als vollwertigen Display-Server verwenden (nicht eingebettet)"
 | 
			
		||||
 | 
			
		||||
# CHECK
 | 
			
		||||
# c-format
 | 
			
		||||
#: ../src/core/mutter.c:39
 | 
			
		||||
#: src/core/mutter.c:39
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"mutter %s\n"
 | 
			
		||||
@@ -582,20 +349,20 @@ msgstr ""
 | 
			
		||||
"Es besteht KEINE Garantie auf MARKTREIFE oder EIGNUNG für einen BESTIMMTEN "
 | 
			
		||||
"ZWECK.\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/mutter.c:53
 | 
			
		||||
#: src/core/mutter.c:53
 | 
			
		||||
msgid "Print version"
 | 
			
		||||
msgstr "Version ausgeben"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/mutter.c:59
 | 
			
		||||
#: src/core/mutter.c:59
 | 
			
		||||
msgid "Mutter plugin to use"
 | 
			
		||||
msgstr "Zu benutzendes Mutter-Plugin"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/prefs.c:1997
 | 
			
		||||
#: src/core/prefs.c:1997
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Workspace %d"
 | 
			
		||||
msgstr "Arbeitsfläche %d"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:521
 | 
			
		||||
#: src/core/screen.c:521
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Display \"%s\" already has a window manager; try using the --replace option "
 | 
			
		||||
@@ -604,16 +371,21 @@ msgstr ""
 | 
			
		||||
"Bildschirm »%s« hat bereits einen Fensterverwalter. Versuchen Sie die Option "
 | 
			
		||||
"»--replace«, um den aktuellen Fensterverwalter zu ersetzen."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:603
 | 
			
		||||
#: src/core/screen.c:606
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Screen %d on display '%s' is invalid\n"
 | 
			
		||||
msgstr "Bildschirm %d auf Anzeige »%s« ist ungültig\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/util.c:121
 | 
			
		||||
#: src/core/util.c:120
 | 
			
		||||
msgid "Mutter was compiled without support for verbose mode\n"
 | 
			
		||||
msgstr "Mutter wurde ohne Unterstützung für den redseligen Modus kompiliert\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/x11/session.c:1815
 | 
			
		||||
#: src/wayland/meta-wayland-tablet-pad.c:595
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Mode Switch: Mode %d"
 | 
			
		||||
msgstr "Moduswechsel: Modus %d"
 | 
			
		||||
 | 
			
		||||
#: src/x11/session.c:1815
 | 
			
		||||
msgid ""
 | 
			
		||||
"These windows do not support "save current setup" and will have to "
 | 
			
		||||
"be restarted manually next time you log in."
 | 
			
		||||
@@ -621,11 +393,190 @@ msgstr ""
 | 
			
		||||
"Diese Fenster unterstützen das Speichern der aktuellen Einstellungen nicht "
 | 
			
		||||
"und müssen bei der nächsten Anmeldung manuell neu gestartet werden."
 | 
			
		||||
 | 
			
		||||
#: ../src/x11/window-props.c:549
 | 
			
		||||
#: src/x11/window-props.c:548
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s (on %s)"
 | 
			
		||||
msgstr "%s (auf %s)"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Navigation"
 | 
			
		||||
#~ msgstr "Navigation"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window to workspace 1"
 | 
			
		||||
#~ msgstr "Fenster auf Arbeitsfläche 1 verschieben"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window to workspace 2"
 | 
			
		||||
#~ msgstr "Fenster auf Arbeitsfläche 2 verschieben"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window to workspace 3"
 | 
			
		||||
#~ msgstr "Fenster auf Arbeitsfläche 3 verschieben"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window to workspace 4"
 | 
			
		||||
#~ msgstr "Fenster auf Arbeitsfläche 4 verschieben"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window to last workspace"
 | 
			
		||||
#~ msgstr "Fenster auf letzte Arbeitsfläche verschieben"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window one workspace to the left"
 | 
			
		||||
#~ msgstr "Fenster eine Arbeitsfläche nach links verschieben"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window one workspace to the right"
 | 
			
		||||
#~ msgstr "Fenster eine Arbeitsfläche nach rechts verschieben"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window one workspace up"
 | 
			
		||||
#~ msgstr "Fenster eine Arbeitsfläche nach oben verschieben"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window one workspace down"
 | 
			
		||||
#~ msgstr "Fenster eine Arbeitsfläche nach unten verschieben"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window one monitor to the left"
 | 
			
		||||
#~ msgstr "Fenster einen Bildschirm nach links verschieben"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window one monitor to the right"
 | 
			
		||||
#~ msgstr "Fenster einen Bildschirm nach rechts verschieben"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window one monitor up"
 | 
			
		||||
#~ msgstr "Fenster einen Bildschirm nach oben verschieben"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window one monitor down"
 | 
			
		||||
#~ msgstr "Fenster einen Bildschirm nach unten verschieben"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch applications"
 | 
			
		||||
#~ msgstr "Anwendungen wechseln"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch to previous application"
 | 
			
		||||
#~ msgstr "Zur vorherigen Anwendung wechseln"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch windows"
 | 
			
		||||
#~ msgstr "Fenster wechseln"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch to previous window"
 | 
			
		||||
#~ msgstr "Zum vorherigen Fenster wechseln"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch windows of an application"
 | 
			
		||||
#~ msgstr "Zwischen den Fenstern einer Anwendung wechseln"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch to previous window of an application"
 | 
			
		||||
#~ msgstr "Zum vorherigen Fenster einer Anwendung wechseln"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch to previous system control"
 | 
			
		||||
#~ msgstr "Zur vorherigen Systemsteuerungen wechseln"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch windows directly"
 | 
			
		||||
#~ msgstr "Fenster sofort wechseln"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch directly to previous window"
 | 
			
		||||
#~ msgstr "Direkt zum vorherigen Fenster wechseln"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch windows of an app directly"
 | 
			
		||||
#~ msgstr "Sofort zwischen den Fenstern einer Anwendung wechseln"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch directly to previous window of an app"
 | 
			
		||||
#~ msgstr "Direkt zum vorherigen Fenster einer Anwendung wechseln"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch system controls directly"
 | 
			
		||||
#~ msgstr "Systemsteuerungen sofort umschalten"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch directly to previous system control"
 | 
			
		||||
#~ msgstr "Direkt zur vorherigen Systemsteuerungen wechselen"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Hide all normal windows"
 | 
			
		||||
#~ msgstr "Alle normalen Fenster verbergen"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch to workspace 1"
 | 
			
		||||
#~ msgstr "Zur Arbeitsfläche 1 wechseln"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch to workspace 2"
 | 
			
		||||
#~ msgstr "Zur Arbeitsfläche 2 wechseln"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch to workspace 3"
 | 
			
		||||
#~ msgstr "Zur Arbeitsfläche 3 wechseln"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch to workspace 4"
 | 
			
		||||
#~ msgstr "Zur Arbeitsfläche 4 wechseln"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch to last workspace"
 | 
			
		||||
#~ msgstr "Zur letzten Arbeitsfläche wechseln"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move to workspace left"
 | 
			
		||||
#~ msgstr "Auf Arbeitsfläche links verschieben"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move to workspace right"
 | 
			
		||||
#~ msgstr "Auf Arbeitsfläche rechts verschieben"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move to workspace above"
 | 
			
		||||
#~ msgstr "Auf Arbeitsfläche darüber verschieben"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move to workspace below"
 | 
			
		||||
#~ msgstr "Auf Arbeitsfläche darunter verschieben"
 | 
			
		||||
 | 
			
		||||
#~ msgid "System"
 | 
			
		||||
#~ msgstr "System"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Show the run command prompt"
 | 
			
		||||
#~ msgstr "Den »Befehl ausführen«-Dialog anzeigen"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Show the activities overview"
 | 
			
		||||
#~ msgstr "Aktivitäten-Übersicht anzeigen"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Windows"
 | 
			
		||||
#~ msgstr "Fenster"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Activate the window menu"
 | 
			
		||||
#~ msgstr "Das Fenstermenü aktivieren"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Toggle fullscreen mode"
 | 
			
		||||
#~ msgstr "Vollbildmodus ein-/ausschalten"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Toggle maximization state"
 | 
			
		||||
#~ msgstr "Maximierungszustand ein-/ausschalten"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Maximize window"
 | 
			
		||||
#~ msgstr "Fenster maximieren"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Restore window"
 | 
			
		||||
#~ msgstr "Fenstergröße wiederherstellen"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Toggle shaded state"
 | 
			
		||||
#~ msgstr "Fenster ein-/ausrollen"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Close window"
 | 
			
		||||
#~ msgstr "Fenster schließen"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Hide window"
 | 
			
		||||
#~ msgstr "Fenster verbergen"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window"
 | 
			
		||||
#~ msgstr "Fenster verschieben"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Resize window"
 | 
			
		||||
#~ msgstr "Fenstergröße ändern"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Toggle window on all workspaces or one"
 | 
			
		||||
#~ msgstr ""
 | 
			
		||||
#~ "Festlegen, ob das Fenster auf allen oder nur einer Arbeitsfläche sichtbar "
 | 
			
		||||
#~ "ist"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Raise window if covered, otherwise lower it"
 | 
			
		||||
#~ msgstr "Fenster anheben, falls es verdeckt ist, andernfalls absenken"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Raise window above other windows"
 | 
			
		||||
#~ msgstr "Fenster vor die anderen Fenster anheben"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Lower window below other windows"
 | 
			
		||||
#~ msgstr "Fenster hinter die anderen Fenster absenken"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Maximize window vertically"
 | 
			
		||||
#~ msgstr "Fenster vertikal maximieren"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Maximize window horizontally"
 | 
			
		||||
#~ msgstr "Fenster horizontal maximieren"
 | 
			
		||||
 | 
			
		||||
#~ msgid "View split on left"
 | 
			
		||||
#~ msgstr "Ansicht links teilen"
 | 
			
		||||
 | 
			
		||||
#~ msgid "View split on right"
 | 
			
		||||
#~ msgstr "Ansicht rechts teilen"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Failed to scan themes directory: %s\n"
 | 
			
		||||
#~ msgstr "Der Themenordner konnte nicht eingelesen werden: %s\n"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/dz.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/dz.po
									
									
									
									
									
								
							@@ -10,6 +10,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2007-05-24 23:11+0530\n"
 | 
			
		||||
"Last-Translator: Tshewang Norbu <bumthap2006@hotmail.com>\n"
 | 
			
		||||
"Language-Team: DZONGKHA <pgeyleg@dit.gov.bt>\n"
 | 
			
		||||
"Language: dz\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=utf-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2005-07-18 18:28-0400\n"
 | 
			
		||||
"Last-Translator: Adam Weinberger <adamw@gnome.org>\n"
 | 
			
		||||
"Language-Team: Canadian English <adamw@gnome.org>\n"
 | 
			
		||||
"Language: en_CA\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										59
									
								
								po/es.po
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								po/es.po
									
									
									
									
									
								
							@@ -14,11 +14,11 @@ msgstr ""
 | 
			
		||||
"Project-Id-Version: mutter.master\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
 | 
			
		||||
"product=mutter&keywords=I18N+L10N&component=general\n"
 | 
			
		||||
"POT-Creation-Date: 2016-02-28 13:37+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2016-02-29 16:02+0100\n"
 | 
			
		||||
"POT-Creation-Date: 2016-07-24 19:39+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2016-07-26 13:00+0200\n"
 | 
			
		||||
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
 | 
			
		||||
"Language-Team: Español; Castellano <gnome-es-list@gnome.org>\n"
 | 
			
		||||
"Language: \n"
 | 
			
		||||
"Language: es\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
@@ -464,29 +464,38 @@ msgstr "Cambiar al VT 11"
 | 
			
		||||
msgid "Switch to VT 12"
 | 
			
		||||
msgstr "Cambiar al VT 12"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:518
 | 
			
		||||
#: ../src/backends/meta-input-settings.c:1605
 | 
			
		||||
#| msgid "Switch system controls"
 | 
			
		||||
msgid "Switch monitor"
 | 
			
		||||
msgstr "Cambiar monitor"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-input-settings.c:1607
 | 
			
		||||
msgid "Show on-screen help"
 | 
			
		||||
msgstr "Mostrar la ayuda en pantalla"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:515
 | 
			
		||||
msgid "Built-in display"
 | 
			
		||||
msgstr "Pantalla integrada"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:544
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:538
 | 
			
		||||
msgid "Unknown"
 | 
			
		||||
msgstr "Desconocida"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:546
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:540
 | 
			
		||||
msgid "Unknown Display"
 | 
			
		||||
msgstr "Pantalla desconocida"
 | 
			
		||||
 | 
			
		||||
#. TRANSLATORS: this is a monitor vendor name, followed by a
 | 
			
		||||
#. * size in inches, like 'Dell 15"'
 | 
			
		||||
#.
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:554
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:548
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s %s"
 | 
			
		||||
msgstr "%s %s"
 | 
			
		||||
 | 
			
		||||
#. This probably means that a non-WM compositor like xcompmgr is running;
 | 
			
		||||
#. * we have no way to get it to exit
 | 
			
		||||
#: ../src/compositor/compositor.c:456
 | 
			
		||||
#: ../src/compositor/compositor.c:463
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Another compositing manager is already running on screen %i on display \"%s"
 | 
			
		||||
@@ -495,7 +504,7 @@ msgstr ""
 | 
			
		||||
"Ya existe un gestor de composición ejecutándose en la monitor %i, pantalla "
 | 
			
		||||
"«%s»."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/bell.c:185
 | 
			
		||||
#: ../src/core/bell.c:194
 | 
			
		||||
msgid "Bell event"
 | 
			
		||||
msgstr "Evento de campana"
 | 
			
		||||
 | 
			
		||||
@@ -524,45 +533,44 @@ msgstr "_Esperar"
 | 
			
		||||
msgid "_Force Quit"
 | 
			
		||||
msgstr "_Forzar la salida"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/display.c:555
 | 
			
		||||
#: ../src/core/display.c:590
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Failed to open X Window System display '%s'\n"
 | 
			
		||||
msgstr "Ocurrió un error al abrir la pantalla de X Window System «%s»\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:181
 | 
			
		||||
#: ../src/core/main.c:182
 | 
			
		||||
msgid "Disable connection to session manager"
 | 
			
		||||
msgstr "Desactivar conexión al gestor de sesión"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:187
 | 
			
		||||
#: ../src/core/main.c:188
 | 
			
		||||
msgid "Replace the running window manager"
 | 
			
		||||
msgstr "Reemplazar el gestor de ventanas en ejecución"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:193
 | 
			
		||||
#: ../src/core/main.c:194
 | 
			
		||||
msgid "Specify session management ID"
 | 
			
		||||
msgstr "Especificar el ID se gestión de sesión"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:198
 | 
			
		||||
#: ../src/core/main.c:199
 | 
			
		||||
msgid "X Display to use"
 | 
			
		||||
msgstr "Pantalla X que usar"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:204
 | 
			
		||||
#: ../src/core/main.c:205
 | 
			
		||||
msgid "Initialize session from savefile"
 | 
			
		||||
msgstr "Inicializar sesión desde el archivo de salvaguarda"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:210
 | 
			
		||||
#: ../src/core/main.c:211
 | 
			
		||||
msgid "Make X calls synchronous"
 | 
			
		||||
msgstr "Hacer que las llamadas a las X sean síncronas"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:217
 | 
			
		||||
#: ../src/core/main.c:218
 | 
			
		||||
msgid "Run as a wayland compositor"
 | 
			
		||||
msgstr "Ejecutar como compositor Wayland"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:223
 | 
			
		||||
#| msgid "Run as a wayland compositor"
 | 
			
		||||
#: ../src/core/main.c:224
 | 
			
		||||
msgid "Run as a nested compositor"
 | 
			
		||||
msgstr "Ejecutar como compositor anidado"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:231
 | 
			
		||||
#: ../src/core/main.c:232
 | 
			
		||||
msgid "Run as a full display server, rather than nested"
 | 
			
		||||
msgstr "Ejecutar como servidor completo, en lugar de anidado"
 | 
			
		||||
 | 
			
		||||
@@ -603,15 +611,20 @@ msgstr ""
 | 
			
		||||
"La pantalla «%s» ya tiene un gestor de ventanas; pruebe a usar la opción «--"
 | 
			
		||||
"replace» para reemplazar el gestor de ventanas activo."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:603
 | 
			
		||||
#: ../src/core/screen.c:606
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Screen %d on display '%s' is invalid\n"
 | 
			
		||||
msgstr "La ventana %d en la pantalla «%s» no es válida\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/util.c:121
 | 
			
		||||
#: ../src/core/util.c:120
 | 
			
		||||
msgid "Mutter was compiled without support for verbose mode\n"
 | 
			
		||||
msgstr "Mutter fue compilado sin soporte para modo prolijo\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/wayland/meta-wayland-tablet-pad.c:595
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Mode Switch: Mode %d"
 | 
			
		||||
msgstr "Cambiar modo: modo %d"
 | 
			
		||||
 | 
			
		||||
#: ../src/x11/session.c:1815
 | 
			
		||||
msgid ""
 | 
			
		||||
"These windows do not support "save current setup" and will have to "
 | 
			
		||||
@@ -620,7 +633,7 @@ msgstr ""
 | 
			
		||||
"Estas ventanas no soportan «guardar la configuración actual» y tendrán que "
 | 
			
		||||
"reiniciarse manualmente la próxima vez que inicie una sesión."
 | 
			
		||||
 | 
			
		||||
#: ../src/x11/window-props.c:549
 | 
			
		||||
#: ../src/x11/window-props.c:548
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s (on %s)"
 | 
			
		||||
msgstr "%s (on %s)"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/fa.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/fa.po
									
									
									
									
									
								
							@@ -13,6 +13,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2012-04-01 00:10+0330\n"
 | 
			
		||||
"Last-Translator: Arash Mousavi <mousavi.arash@gmail.com>\n"
 | 
			
		||||
"Language-Team: Persian\n"
 | 
			
		||||
"Language: fa\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										126
									
								
								po/fur.po
									
									
									
									
									
								
							
							
						
						
									
										126
									
								
								po/fur.po
									
									
									
									
									
								
							@@ -8,15 +8,15 @@ msgstr ""
 | 
			
		||||
"Project-Id-Version: mutter master\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
 | 
			
		||||
"product=mutter&keywords=I18N+L10N&component=general\n"
 | 
			
		||||
"POT-Creation-Date: 2016-03-25 01:58+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2016-03-25 17:54+0100\n"
 | 
			
		||||
"POT-Creation-Date: 2016-08-07 10:39+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2016-08-07 18:18+0200\n"
 | 
			
		||||
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
 | 
			
		||||
"Language-Team: Friulian <fur@li.org>\n"
 | 
			
		||||
"Language: fur\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
 | 
			
		||||
"X-Generator: Poedit 1.8.5\n"
 | 
			
		||||
"X-Generator: Poedit 1.8.8\n"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:1
 | 
			
		||||
msgid "Navigation"
 | 
			
		||||
@@ -108,27 +108,27 @@ msgstr "Passe al control di sisteme precedent"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:23
 | 
			
		||||
msgid "Switch windows directly"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Passe dret ai barcons"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:24
 | 
			
		||||
msgid "Switch directly to previous window"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Passe dret al barcon precedent"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:25
 | 
			
		||||
msgid "Switch windows of an app directly"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Passe dret a un barcon di une aplicazion"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:26
 | 
			
		||||
msgid "Switch directly to previous window of an app"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Passe dret al barcon precedent di une aplicazion"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:27
 | 
			
		||||
msgid "Switch system controls directly"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Passe dret ai controi dal sisteme"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:28
 | 
			
		||||
msgid "Switch directly to previous system control"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Passe dret al control precedent dal sisteme"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:29
 | 
			
		||||
msgid "Hide all normal windows"
 | 
			
		||||
@@ -176,7 +176,7 @@ msgstr "Sisteme"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-system.xml.in.h:2
 | 
			
		||||
msgid "Show the run command prompt"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Mostre la richieste \"eseguìs comant\""
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-system.xml.in.h:3
 | 
			
		||||
msgid "Show the activities overview"
 | 
			
		||||
@@ -252,11 +252,11 @@ msgstr "Slargje il barcon par orizontâl"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:18
 | 
			
		||||
msgid "View split on left"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Slargje dividint ae çampe"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:19
 | 
			
		||||
msgid "View split on right"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Slargje dividint ae drete"
 | 
			
		||||
 | 
			
		||||
#: ../data/mutter.desktop.in.h:1
 | 
			
		||||
msgid "Mutter"
 | 
			
		||||
@@ -264,7 +264,7 @@ msgstr "Mutter"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:1
 | 
			
		||||
msgid "Modifier to use for extended window management operations"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Modificadôr di doprâ pes operazions estesis di gjestion barcons"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:2
 | 
			
		||||
msgid ""
 | 
			
		||||
@@ -273,10 +273,14 @@ msgid ""
 | 
			
		||||
"\"Windows key\" on PC hardware. It's expected that this binding either the "
 | 
			
		||||
"default or set to the empty string."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Cheste clâf e tache il \"overlay\", che e je une cumbinazion tra la "
 | 
			
		||||
"panoramiche dai barcons e il sisteme par inviâ lis aplicazions. Il valôr "
 | 
			
		||||
"predefinît al è pensât par jessi il \"tast Windows\" su hardware PC. Si "
 | 
			
		||||
"spiete che cheste scurte e sedi il valôr predefinît o une stringhe vueide."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:3
 | 
			
		||||
msgid "Attach modal dialogs"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Dialics modâi tacâts"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:4
 | 
			
		||||
msgid ""
 | 
			
		||||
@@ -284,10 +288,13 @@ msgid ""
 | 
			
		||||
"attached to the titlebar of the parent window and are moved together with "
 | 
			
		||||
"the parent window."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Se metût a VÊR, invezit di vê sbaris di titul indipendentis, i dialics modâi "
 | 
			
		||||
"a semein tacâts ae sbare dal titul dal barcon gjenitôr e si spostin cun lui."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:5
 | 
			
		||||
msgid "Enable edge tiling when dropping windows on screen edges"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Abilite il piastrelâ tal ôr cuant che si strissine i barcons tal ôr dal visôr"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:6
 | 
			
		||||
msgid ""
 | 
			
		||||
@@ -295,6 +302,10 @@ msgid ""
 | 
			
		||||
"vertically and resizes them horizontally to cover half of the available "
 | 
			
		||||
"area. Dropping windows on the top screen edge maximizes them completely."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Se abilitade, strissinant i barcons sui ôrs verticâi dal schermi, i barcons "
 | 
			
		||||
"a vegnin slargjâts in verticâl e ridimensionâts in orizontâl, in mût di "
 | 
			
		||||
"cuvierzi metât dal spazi disponibil. Strissinant sul ôr superiôr dal schermi "
 | 
			
		||||
"al slargje i barcons dal dut."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:7
 | 
			
		||||
msgid "Workspaces are managed dynamically"
 | 
			
		||||
@@ -306,6 +317,9 @@ msgid ""
 | 
			
		||||
"static number of workspaces (determined by the num-workspaces key in org."
 | 
			
		||||
"gnome.desktop.wm.preferences)."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Determine se i spazis di lavôr a son gjestîts in maniere dinamiche o se il "
 | 
			
		||||
"lôr numar al è fis (determinât de clâf num-workspaces in org.gnome.desktop."
 | 
			
		||||
"wm.preferences)."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:9
 | 
			
		||||
msgid "Workspaces only on primary"
 | 
			
		||||
@@ -316,20 +330,24 @@ msgid ""
 | 
			
		||||
"Determines whether workspace switching should happen for windows on all "
 | 
			
		||||
"monitors or only for windows on the primary monitor."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Determine se il cambi di spazi di lavôr al à di vignî pai barcons su ducj i "
 | 
			
		||||
"visôrs o nome pai barcons sul visôr primari."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:11
 | 
			
		||||
msgid "No tab popup"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Nissun tab popup"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:12
 | 
			
		||||
msgid ""
 | 
			
		||||
"Determines whether the use of popup and highlight frame should be disabled "
 | 
			
		||||
"for window cycling."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Determine se disabilitâ l'ûs di popup e di curnîs di evidenziadure tal passâ "
 | 
			
		||||
"di un barcon a chel altri."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:13
 | 
			
		||||
msgid "Delay focus changes until the pointer stops moving"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Tarde il cambiament dal focus fintremai che il puntadôr si ferme"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:14
 | 
			
		||||
msgid ""
 | 
			
		||||
@@ -337,26 +355,33 @@ msgid ""
 | 
			
		||||
"the focus will not be changed immediately when entering a window, but only "
 | 
			
		||||
"after the pointer stops moving."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Se metût a VÊR, e la modalitât di focus e je metude a \"sloppy\" o \"mouse\" "
 | 
			
		||||
"alore il focus nol ven spostât subite cuant che si passe suntun barcon, ma "
 | 
			
		||||
"nome cuant che il puntadôr si ferme."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:15
 | 
			
		||||
msgid "Draggable border width"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Largjece dal ôr che si pues strissinâ"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:16
 | 
			
		||||
msgid ""
 | 
			
		||||
"The amount of total draggable borders. If the theme's visible borders are "
 | 
			
		||||
"not enough, invisible borders will be added to meet this value."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Il spessôr totâl pai ôrs che si puedin strissinâ. Se i ôrs visibii dal teme "
 | 
			
		||||
"no bastin, a vegnin zontâts dai ôrs invisibii par rivâ a chest valôr."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:17
 | 
			
		||||
msgid "Auto maximize nearly monitor sized windows"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Slargje in automatic i barcons grancj su par ju come il visôr"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:18
 | 
			
		||||
msgid ""
 | 
			
		||||
"If enabled, new windows that are initially the size of the monitor "
 | 
			
		||||
"automatically get maximized."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Se abilitât, i gnûfs barcons che a an al inizi la stesse dimension dal visôr "
 | 
			
		||||
"a vegnin slargjâts in automatic."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:19
 | 
			
		||||
msgid "Place new windows in the center"
 | 
			
		||||
@@ -367,14 +392,16 @@ msgid ""
 | 
			
		||||
"When true, the new windows will always be put in the center of the active "
 | 
			
		||||
"screen of the monitor."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Se metût a VÊR, i gnûfs barcons a vegnaran plaçâts simpri tal mieç dal "
 | 
			
		||||
"schermi atîf dal visôr."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:21
 | 
			
		||||
msgid "Select window from tab popup"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Selezione barcon dal tab popup"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:22
 | 
			
		||||
msgid "Cancel tab popup"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Anule tab popup"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:1
 | 
			
		||||
msgid "Switch to VT 1"
 | 
			
		||||
@@ -424,29 +451,37 @@ msgstr "Passe al VT 11"
 | 
			
		||||
msgid "Switch to VT 12"
 | 
			
		||||
msgstr "Passe al VT 12"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:518
 | 
			
		||||
#: ../src/backends/meta-input-settings.c:1707
 | 
			
		||||
msgid "Switch monitor"
 | 
			
		||||
msgstr "Cambie visôr"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-input-settings.c:1709
 | 
			
		||||
msgid "Show on-screen help"
 | 
			
		||||
msgstr "Mostre jutori a schermi"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:515
 | 
			
		||||
msgid "Built-in display"
 | 
			
		||||
msgstr "Display integrât"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:544
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:538
 | 
			
		||||
msgid "Unknown"
 | 
			
		||||
msgstr "No cognossût"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:546
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:540
 | 
			
		||||
msgid "Unknown Display"
 | 
			
		||||
msgstr "Display no cognossût"
 | 
			
		||||
 | 
			
		||||
#. TRANSLATORS: this is a monitor vendor name, followed by a
 | 
			
		||||
#. * size in inches, like 'Dell 15"'
 | 
			
		||||
#.
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:554
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:548
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s %s"
 | 
			
		||||
msgstr "%s %s"
 | 
			
		||||
 | 
			
		||||
#. This probably means that a non-WM compositor like xcompmgr is running;
 | 
			
		||||
#. * we have no way to get it to exit
 | 
			
		||||
#: ../src/compositor/compositor.c:456
 | 
			
		||||
#: ../src/compositor/compositor.c:463
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Another compositing manager is already running on screen %i on display \"%s"
 | 
			
		||||
@@ -473,6 +508,8 @@ msgid ""
 | 
			
		||||
"You may choose to wait a short while for it to continue or force the "
 | 
			
		||||
"application to quit entirely."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Al è pussibil sielzi di spietâ un pôc lassant che la aplicazion e continui o "
 | 
			
		||||
"sfuarçâ la aplicazion par sierâle dal dut."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:141
 | 
			
		||||
msgid "_Wait"
 | 
			
		||||
@@ -482,44 +519,44 @@ msgstr "_Spiete"
 | 
			
		||||
msgid "_Force Quit"
 | 
			
		||||
msgstr "Sfuarce _Jessude"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/display.c:555
 | 
			
		||||
#: ../src/core/display.c:590
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Failed to open X Window System display '%s'\n"
 | 
			
		||||
msgstr "Impussibil vierzi il display '%s' di X Window System\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:181
 | 
			
		||||
#: ../src/core/main.c:182
 | 
			
		||||
msgid "Disable connection to session manager"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Disabilite la conession al gjestôr de session"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:187
 | 
			
		||||
#: ../src/core/main.c:188
 | 
			
		||||
msgid "Replace the running window manager"
 | 
			
		||||
msgstr "Rimplace il window manager in vore"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:193
 | 
			
		||||
#: ../src/core/main.c:194
 | 
			
		||||
msgid "Specify session management ID"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Specifiche il ID di gjestion session"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:198
 | 
			
		||||
#: ../src/core/main.c:199
 | 
			
		||||
msgid "X Display to use"
 | 
			
		||||
msgstr "Display X di doprâ"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:204
 | 
			
		||||
#: ../src/core/main.c:205
 | 
			
		||||
msgid "Initialize session from savefile"
 | 
			
		||||
msgstr "Inizialize session da file salvât"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:210
 | 
			
		||||
#: ../src/core/main.c:211
 | 
			
		||||
msgid "Make X calls synchronous"
 | 
			
		||||
msgstr "Fâs lis clamadis X sincronis"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:217
 | 
			
		||||
#: ../src/core/main.c:218
 | 
			
		||||
msgid "Run as a wayland compositor"
 | 
			
		||||
msgstr "Eseguìs come compositor wayland"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:223
 | 
			
		||||
#: ../src/core/main.c:224
 | 
			
		||||
msgid "Run as a nested compositor"
 | 
			
		||||
msgstr "Eseguìs come compositor nidiât"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:231
 | 
			
		||||
#: ../src/core/main.c:232
 | 
			
		||||
msgid "Run as a full display server, rather than nested"
 | 
			
		||||
msgstr "Eseguìs come servidôr display complet, invezit che nidiât"
 | 
			
		||||
 | 
			
		||||
@@ -535,7 +572,7 @@ msgstr ""
 | 
			
		||||
"mutter %s\n"
 | 
			
		||||
"Copyright (C) 2001-%d Havoc Pennington, Red Hat, Inc., e altris\n"
 | 
			
		||||
"Chest al è software libar; viodi i sorzints pes condizions di copie.\n"
 | 
			
		||||
"No je NISSUNE garanzie; nancje di COMERCIABILITÂT o IDONEITÂT A UNE "
 | 
			
		||||
"No je NISSUNE garanzie; nancje di CUMIERÇABILITÂT o IDONEITÂT A UNE "
 | 
			
		||||
"FINALITÂT PARTICOLÂR.\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/mutter.c:53
 | 
			
		||||
@@ -560,15 +597,20 @@ msgstr ""
 | 
			
		||||
"Il display \"%s\" al à za un window manager; prove dopre la opzion --replace "
 | 
			
		||||
"par rimplaçâ chel atuâl."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:603
 | 
			
		||||
#: ../src/core/screen.c:606
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Screen %d on display '%s' is invalid\n"
 | 
			
		||||
msgstr "Schermi %d su display '%s' no valit\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/util.c:121
 | 
			
		||||
#: ../src/core/util.c:120
 | 
			
		||||
msgid "Mutter was compiled without support for verbose mode\n"
 | 
			
		||||
msgstr "Mutter al è stât compilât cence supuart pe modalitât fetose\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/wayland/meta-wayland-tablet-pad.c:595
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Mode Switch: Mode %d"
 | 
			
		||||
msgstr "Cambie mût: mût %d"
 | 
			
		||||
 | 
			
		||||
#: ../src/x11/session.c:1815
 | 
			
		||||
msgid ""
 | 
			
		||||
"These windows do not support "save current setup" and will have to "
 | 
			
		||||
@@ -577,7 +619,7 @@ msgstr ""
 | 
			
		||||
"Chescj barcons no supuartin la funzion "salve impostazions atuâi" "
 | 
			
		||||
"e si scugnarà tornâ a inviâlis a man tal prossim acès."
 | 
			
		||||
 | 
			
		||||
#: ../src/x11/window-props.c:549
 | 
			
		||||
#: ../src/x11/window-props.c:548
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s (on %s)"
 | 
			
		||||
msgstr "%s (su %s)"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								po/gu.po
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								po/gu.po
									
									
									
									
									
								
							@@ -11,7 +11,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2014-09-12 11:50+0530\n"
 | 
			
		||||
"Last-Translator: \n"
 | 
			
		||||
"Language-Team: American English <kde-i18n-doc@kde.org>\n"
 | 
			
		||||
"Language: \n"
 | 
			
		||||
"Language: gu\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/ha.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/ha.po
									
									
									
									
									
								
							@@ -7,6 +7,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2006-05-11 13:30+0100\n"
 | 
			
		||||
"Last-Translator: saudat mohammed <saudat@wazobialinux>\n"
 | 
			
		||||
"Language-Team: hausa\n"
 | 
			
		||||
"Language: ha\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										55
									
								
								po/he.po
									
									
									
									
									
								
							
							
						
						
									
										55
									
								
								po/he.po
									
									
									
									
									
								
							@@ -10,8 +10,8 @@ msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: metacity.HEAD.he\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2016-03-03 14:39+0200\n"
 | 
			
		||||
"PO-Revision-Date: 2016-03-03 14:40+0200\n"
 | 
			
		||||
"POT-Creation-Date: 2016-08-07 15:11+0300\n"
 | 
			
		||||
"PO-Revision-Date: 2016-08-07 15:12+0300\n"
 | 
			
		||||
"Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n"
 | 
			
		||||
"Language-Team: עברית <>\n"
 | 
			
		||||
"Language: he\n"
 | 
			
		||||
@@ -453,36 +453,44 @@ msgstr "מעבר ל־VT 11"
 | 
			
		||||
msgid "Switch to VT 12"
 | 
			
		||||
msgstr "מעבר ל־VT 12"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:518
 | 
			
		||||
#: ../src/backends/meta-input-settings.c:1707
 | 
			
		||||
msgid "Switch monitor"
 | 
			
		||||
msgstr "החלפה בין צגים"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-input-settings.c:1709
 | 
			
		||||
msgid "Show on-screen help"
 | 
			
		||||
msgstr "הצגת עזרה על המסך"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:515
 | 
			
		||||
msgid "Built-in display"
 | 
			
		||||
msgstr "תצוגה מובנית"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:544
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:538
 | 
			
		||||
msgid "Unknown"
 | 
			
		||||
msgstr "לא ידוע"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:546
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:540
 | 
			
		||||
msgid "Unknown Display"
 | 
			
		||||
msgstr "תצוגה לא ידועה"
 | 
			
		||||
 | 
			
		||||
#. TRANSLATORS: this is a monitor vendor name, followed by a
 | 
			
		||||
#. * size in inches, like 'Dell 15"'
 | 
			
		||||
#.
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:554
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:548
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s %s"
 | 
			
		||||
msgstr "%s %s"
 | 
			
		||||
 | 
			
		||||
#. This probably means that a non-WM compositor like xcompmgr is running;
 | 
			
		||||
#. * we have no way to get it to exit
 | 
			
		||||
#: ../src/compositor/compositor.c:456
 | 
			
		||||
#: ../src/compositor/compositor.c:463
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Another compositing manager is already running on screen %i on display \"%s"
 | 
			
		||||
"\"."
 | 
			
		||||
msgstr "מנהל תצוגת חלונות אחר כבר פועל במסך %i בתצוגה „%s“."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/bell.c:185
 | 
			
		||||
#: ../src/core/bell.c:194
 | 
			
		||||
msgid "Bell event"
 | 
			
		||||
msgstr "אירוע פעמון"
 | 
			
		||||
 | 
			
		||||
@@ -510,44 +518,44 @@ msgstr "ה_מתנה"
 | 
			
		||||
msgid "_Force Quit"
 | 
			
		||||
msgstr "_אילוץ סגירה"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/display.c:555
 | 
			
		||||
#: ../src/core/display.c:590
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Failed to open X Window System display '%s'\n"
 | 
			
		||||
msgstr "Failed to open X Window System display '%s'\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:181
 | 
			
		||||
#: ../src/core/main.c:182
 | 
			
		||||
msgid "Disable connection to session manager"
 | 
			
		||||
msgstr "Disable connection to session manager"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:187
 | 
			
		||||
#: ../src/core/main.c:188
 | 
			
		||||
msgid "Replace the running window manager"
 | 
			
		||||
msgstr "Replace the running window manager"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:193
 | 
			
		||||
#: ../src/core/main.c:194
 | 
			
		||||
msgid "Specify session management ID"
 | 
			
		||||
msgstr "Specify session management ID"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:198
 | 
			
		||||
#: ../src/core/main.c:199
 | 
			
		||||
msgid "X Display to use"
 | 
			
		||||
msgstr "X Display to use"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:204
 | 
			
		||||
#: ../src/core/main.c:205
 | 
			
		||||
msgid "Initialize session from savefile"
 | 
			
		||||
msgstr "Initialize session from savefile"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:210
 | 
			
		||||
#: ../src/core/main.c:211
 | 
			
		||||
msgid "Make X calls synchronous"
 | 
			
		||||
msgstr "Make X calls synchronous"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:217
 | 
			
		||||
#: ../src/core/main.c:218
 | 
			
		||||
msgid "Run as a wayland compositor"
 | 
			
		||||
msgstr "Run as a wayland compositor"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:223
 | 
			
		||||
#: ../src/core/main.c:224
 | 
			
		||||
msgid "Run as a nested compositor"
 | 
			
		||||
msgstr "Run as a nested compositor"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:231
 | 
			
		||||
#: ../src/core/main.c:232
 | 
			
		||||
msgid "Run as a full display server, rather than nested"
 | 
			
		||||
msgstr "Run as a full display server, rather than nested"
 | 
			
		||||
 | 
			
		||||
@@ -587,15 +595,20 @@ msgstr ""
 | 
			
		||||
"Display \"%s\" already has a window manager; try using the --replace option "
 | 
			
		||||
"to replace the current window manager."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:603
 | 
			
		||||
#: ../src/core/screen.c:606
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Screen %d on display '%s' is invalid\n"
 | 
			
		||||
msgstr "Screen %d on display '%s' is invalid\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/util.c:121
 | 
			
		||||
#: ../src/core/util.c:120
 | 
			
		||||
msgid "Mutter was compiled without support for verbose mode\n"
 | 
			
		||||
msgstr "Mutter הודר ללא תמיכה במצב פירוט\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/wayland/meta-wayland-tablet-pad.c:595
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Mode Switch: Mode %d"
 | 
			
		||||
msgstr "מצב העברה: מצב %d"
 | 
			
		||||
 | 
			
		||||
#: ../src/x11/session.c:1815
 | 
			
		||||
msgid ""
 | 
			
		||||
"These windows do not support "save current setup" and will have to "
 | 
			
		||||
@@ -604,7 +617,7 @@ msgstr ""
 | 
			
		||||
"חלונות אלו אינם תומכים ב"שמירת ההגדרות הנוכחיות", ויהיה צורך "
 | 
			
		||||
"באתחול ידני בכניסה הבאה שלך."
 | 
			
		||||
 | 
			
		||||
#: ../src/x11/window-props.c:549
 | 
			
		||||
#: ../src/x11/window-props.c:548
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s (on %s)"
 | 
			
		||||
msgstr "%s (מעל %s)"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/hr.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/hr.po
									
									
									
									
									
								
							@@ -10,6 +10,7 @@ msgstr ""
 | 
			
		||||
"Last-Translator: Launchpad Translations Administrators <rosetta@launchpad."
 | 
			
		||||
"net>\n"
 | 
			
		||||
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
 | 
			
		||||
"Language: hr\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										55
									
								
								po/hu.po
									
									
									
									
									
								
							
							
						
						
									
										55
									
								
								po/hu.po
									
									
									
									
									
								
							@@ -12,8 +12,8 @@ msgstr ""
 | 
			
		||||
"Project-Id-Version: mutter master\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
 | 
			
		||||
"product=mutter&keywords=I18N+L10N&component=general\n"
 | 
			
		||||
"POT-Creation-Date: 2016-03-04 13:42+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2016-03-04 20:43+0100\n"
 | 
			
		||||
"POT-Creation-Date: 2016-07-22 13:03+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2016-08-05 00:06+0200\n"
 | 
			
		||||
"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
 | 
			
		||||
"Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n"
 | 
			
		||||
"Language: hu\n"
 | 
			
		||||
@@ -455,29 +455,38 @@ msgstr "Váltás a 11. VT-re"
 | 
			
		||||
msgid "Switch to VT 12"
 | 
			
		||||
msgstr "Váltás a 12. VT-re"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:518
 | 
			
		||||
#: ../src/backends/meta-input-settings.c:1601
 | 
			
		||||
#| msgid "Switch system controls"
 | 
			
		||||
msgid "Switch monitor"
 | 
			
		||||
msgstr "Monitorváltás"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-input-settings.c:1603
 | 
			
		||||
msgid "Show on-screen help"
 | 
			
		||||
msgstr "Képernyősúgó megjelenítése"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:515
 | 
			
		||||
msgid "Built-in display"
 | 
			
		||||
msgstr "Beépített kijelző"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:544
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:538
 | 
			
		||||
msgid "Unknown"
 | 
			
		||||
msgstr "Ismeretlen"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:546
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:540
 | 
			
		||||
msgid "Unknown Display"
 | 
			
		||||
msgstr "Ismeretlen kijelző"
 | 
			
		||||
 | 
			
		||||
#. TRANSLATORS: this is a monitor vendor name, followed by a
 | 
			
		||||
#. * size in inches, like 'Dell 15"'
 | 
			
		||||
#.
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:554
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:548
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s %s"
 | 
			
		||||
msgstr "%s %s"
 | 
			
		||||
 | 
			
		||||
#. This probably means that a non-WM compositor like xcompmgr is running;
 | 
			
		||||
#. * we have no way to get it to exit
 | 
			
		||||
#: ../src/compositor/compositor.c:456
 | 
			
		||||
#: ../src/compositor/compositor.c:463
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Another compositing manager is already running on screen %i on display \"%s"
 | 
			
		||||
@@ -485,7 +494,7 @@ msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Már fut egy másik betűszedés-kezelő a(z) %i képernyőn a(z) „%s” megjelenítőn."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/bell.c:185
 | 
			
		||||
#: ../src/core/bell.c:194
 | 
			
		||||
msgid "Bell event"
 | 
			
		||||
msgstr "Csengetés esemény"
 | 
			
		||||
 | 
			
		||||
@@ -514,45 +523,44 @@ msgstr "Vá_rakozás"
 | 
			
		||||
msgid "_Force Quit"
 | 
			
		||||
msgstr "_Erőltetett kilépés"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/display.c:555
 | 
			
		||||
#: ../src/core/display.c:590
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Failed to open X Window System display '%s'\n"
 | 
			
		||||
msgstr "Nem sikerült megnyitni a(z) „%s” X Window rendszer képernyőt\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:181
 | 
			
		||||
#: ../src/core/main.c:182
 | 
			
		||||
msgid "Disable connection to session manager"
 | 
			
		||||
msgstr "A munkamenet-kezelőhöz való csatlakozás tiltása"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:187
 | 
			
		||||
#: ../src/core/main.c:188
 | 
			
		||||
msgid "Replace the running window manager"
 | 
			
		||||
msgstr "A futó ablakkezelő helyettesítése"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:193
 | 
			
		||||
#: ../src/core/main.c:194
 | 
			
		||||
msgid "Specify session management ID"
 | 
			
		||||
msgstr "A munkamenet-kezelő azonosítójának megadása"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:198
 | 
			
		||||
#: ../src/core/main.c:199
 | 
			
		||||
msgid "X Display to use"
 | 
			
		||||
msgstr "A használandó X megjelenítő"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:204
 | 
			
		||||
#: ../src/core/main.c:205
 | 
			
		||||
msgid "Initialize session from savefile"
 | 
			
		||||
msgstr "A munkamenet előkészítése a mentési fájlból"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:210
 | 
			
		||||
#: ../src/core/main.c:211
 | 
			
		||||
msgid "Make X calls synchronous"
 | 
			
		||||
msgstr "Az X-hívások szinkronná tétele"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:217
 | 
			
		||||
#: ../src/core/main.c:218
 | 
			
		||||
msgid "Run as a wayland compositor"
 | 
			
		||||
msgstr "Futtatás wayland betűszedőként"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:223
 | 
			
		||||
#| msgid "Run as a wayland compositor"
 | 
			
		||||
#: ../src/core/main.c:224
 | 
			
		||||
msgid "Run as a nested compositor"
 | 
			
		||||
msgstr "Futtatás beágyazott betűszedőként"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:231
 | 
			
		||||
#: ../src/core/main.c:232
 | 
			
		||||
msgid "Run as a full display server, rather than nested"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Futtatás teljes megjelenítő kiszolgálóként az egymásba ágyazott helyett"
 | 
			
		||||
@@ -599,10 +607,15 @@ msgstr ""
 | 
			
		||||
msgid "Screen %d on display '%s' is invalid\n"
 | 
			
		||||
msgstr "A(z) %d képernyő a(z) „%s” megjelenítőn érvénytelen\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/util.c:121
 | 
			
		||||
#: ../src/core/util.c:120
 | 
			
		||||
msgid "Mutter was compiled without support for verbose mode\n"
 | 
			
		||||
msgstr "A Mutter ablakkezelőt a részletes mód támogatása nélkül fordították\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/wayland/meta-wayland-tablet-pad.c:595
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Mode Switch: Mode %d"
 | 
			
		||||
msgstr "Módkapcsoló: %d. mód"
 | 
			
		||||
 | 
			
		||||
#: ../src/x11/session.c:1815
 | 
			
		||||
msgid ""
 | 
			
		||||
"These windows do not support "save current setup" and will have to "
 | 
			
		||||
@@ -612,7 +625,7 @@ msgstr ""
 | 
			
		||||
"mentését", emiatt ezeket a legközelebbi bejelentkezéskor manuálisan "
 | 
			
		||||
"újra kell indítania."
 | 
			
		||||
 | 
			
		||||
#: ../src/x11/window-props.c:549
 | 
			
		||||
#: ../src/x11/window-props.c:548
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s (on %s)"
 | 
			
		||||
msgstr "%s (ezen: %s)"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/hy.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/hy.po
									
									
									
									
									
								
							@@ -9,6 +9,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2005-09-04 18:18+0200\n"
 | 
			
		||||
"Last-Translator: \n"
 | 
			
		||||
"Language-Team:  <en@li.org>\n"
 | 
			
		||||
"Language: hy\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										389
									
								
								po/id.po
									
									
									
									
									
								
							
							
						
						
									
										389
									
								
								po/id.po
									
									
									
									
									
								
							@@ -8,11 +8,11 @@
 | 
			
		||||
# Andika Triwidada <andika@gmail.com>, 2011-2015.
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: mutter gnome-3-20\n"
 | 
			
		||||
"Project-Id-Version: mutter master\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
 | 
			
		||||
"product=mutter&keywords=I18N+L10N&component=general\n"
 | 
			
		||||
"POT-Creation-Date: 2016-05-10 20:26+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2016-06-23 04:18+0700\n"
 | 
			
		||||
"POT-Creation-Date: 2016-08-19 21:04+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2016-08-22 17:38+0700\n"
 | 
			
		||||
"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
 | 
			
		||||
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
 | 
			
		||||
"Language: id\n"
 | 
			
		||||
@@ -22,255 +22,15 @@ msgstr ""
 | 
			
		||||
"X-Generator: Poedit 1.8.8\n"
 | 
			
		||||
"Plural-Forms: nplurals=1; plural=0;\n"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:1
 | 
			
		||||
msgid "Navigation"
 | 
			
		||||
msgstr "Navigasi"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:2
 | 
			
		||||
msgid "Move window to workspace 1"
 | 
			
		||||
msgstr "Pindahkan jendela ke area kerja 1"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:3
 | 
			
		||||
msgid "Move window to workspace 2"
 | 
			
		||||
msgstr "Pindahkan jendela ke area kerja 2"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:4
 | 
			
		||||
msgid "Move window to workspace 3"
 | 
			
		||||
msgstr "Pindahkan jendela ke area kerja 3"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:5
 | 
			
		||||
msgid "Move window to workspace 4"
 | 
			
		||||
msgstr "Pindahkan jendela ke area kerja 4"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:6
 | 
			
		||||
msgid "Move window to last workspace"
 | 
			
		||||
msgstr "Pindahkan jendela ke area kerja terakhir"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:7
 | 
			
		||||
msgid "Move window one workspace to the left"
 | 
			
		||||
msgstr "Pindahkan jendela satu area kerja ke kiri"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:8
 | 
			
		||||
msgid "Move window one workspace to the right"
 | 
			
		||||
msgstr "Pindahkan jendela satu area kerja ke kanan"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:9
 | 
			
		||||
msgid "Move window one workspace up"
 | 
			
		||||
msgstr "Pindahkan jendela ke area kerja atas"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:10
 | 
			
		||||
msgid "Move window one workspace down"
 | 
			
		||||
msgstr "Pindahkan jendela ke area kerja bawah"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:11
 | 
			
		||||
msgid "Move window one monitor to the left"
 | 
			
		||||
msgstr "Pindahkan jendela satu monitor ke kiri"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:12
 | 
			
		||||
msgid "Move window one monitor to the right"
 | 
			
		||||
msgstr "Pindahkan jendela satu monitor ke kanan"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:13
 | 
			
		||||
msgid "Move window one monitor up"
 | 
			
		||||
msgstr "Pindahkan jendela satu monitor ke atas"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:14
 | 
			
		||||
msgid "Move window one monitor down"
 | 
			
		||||
msgstr "Pindahkan jendela satu monitor ke bawah"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:15
 | 
			
		||||
msgid "Switch applications"
 | 
			
		||||
msgstr "Berpindah aplikasi"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:16
 | 
			
		||||
msgid "Switch to previous application"
 | 
			
		||||
msgstr "Berpindah ke aplikasi sebelumnya"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:17
 | 
			
		||||
msgid "Switch windows"
 | 
			
		||||
msgstr "Berpindah jendela"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:18
 | 
			
		||||
msgid "Switch to previous window"
 | 
			
		||||
msgstr "Berpindah ke jendela sebelumnya"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:19
 | 
			
		||||
msgid "Switch windows of an application"
 | 
			
		||||
msgstr "Berpindah jendela aplikasi"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:20
 | 
			
		||||
msgid "Switch to previous window of an application"
 | 
			
		||||
msgstr "Berpindah ke jendela sebelumnya dari suatu aplikasi"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:21
 | 
			
		||||
msgid "Switch system controls"
 | 
			
		||||
msgstr "Berpindah kendali sistem"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:22
 | 
			
		||||
msgid "Switch to previous system control"
 | 
			
		||||
msgstr "Berpindah ke kendali sistem sebelumnya"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:23
 | 
			
		||||
msgid "Switch windows directly"
 | 
			
		||||
msgstr "Berpindah jendela secara langsung"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:24
 | 
			
		||||
msgid "Switch directly to previous window"
 | 
			
		||||
msgstr "Berpindah langsung ke jendela sebelumnya"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:25
 | 
			
		||||
msgid "Switch windows of an app directly"
 | 
			
		||||
msgstr "Berpindah jendela aplikasi secara langsung"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:26
 | 
			
		||||
msgid "Switch directly to previous window of an app"
 | 
			
		||||
msgstr "Berpindah langsung ke jendela sebelumnya dari sebuah aplikasi"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:27
 | 
			
		||||
msgid "Switch system controls directly"
 | 
			
		||||
msgstr "Berpindah kendali sistem secara langsung"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:28
 | 
			
		||||
msgid "Switch directly to previous system control"
 | 
			
		||||
msgstr "Berpindah langsung ke kendali sistem sebelumnya"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:29
 | 
			
		||||
msgid "Hide all normal windows"
 | 
			
		||||
msgstr "Menyembunyikan semua jendela normal"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:30
 | 
			
		||||
msgid "Switch to workspace 1"
 | 
			
		||||
msgstr "Pindah ke area kerja 1"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:31
 | 
			
		||||
msgid "Switch to workspace 2"
 | 
			
		||||
msgstr "Pindah ke area kerja 2"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:32
 | 
			
		||||
msgid "Switch to workspace 3"
 | 
			
		||||
msgstr "Pindah ke area kerja 3"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:33
 | 
			
		||||
msgid "Switch to workspace 4"
 | 
			
		||||
msgstr "Pindah ke area kerja 4"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:34
 | 
			
		||||
msgid "Switch to last workspace"
 | 
			
		||||
msgstr "Pindah ke area kerja terakhir"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:35
 | 
			
		||||
msgid "Move to workspace left"
 | 
			
		||||
msgstr "Pindah ke area kerja kiri"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:36
 | 
			
		||||
msgid "Move to workspace right"
 | 
			
		||||
msgstr "Pindah ke area kerja kanan"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:37
 | 
			
		||||
msgid "Move to workspace above"
 | 
			
		||||
msgstr "Pindah ke area kerja atas"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:38
 | 
			
		||||
msgid "Move to workspace below"
 | 
			
		||||
msgstr "Pindah ke area kerja bawah"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-system.xml.in.h:1
 | 
			
		||||
msgid "System"
 | 
			
		||||
msgstr "Sistem"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-system.xml.in.h:2
 | 
			
		||||
msgid "Show the run command prompt"
 | 
			
		||||
msgstr "Menampilkan dialog untuk mengetik perintah"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-system.xml.in.h:3
 | 
			
		||||
msgid "Show the activities overview"
 | 
			
		||||
msgstr "Menampilkan ringkasan aktivitas"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:1
 | 
			
		||||
msgid "Windows"
 | 
			
		||||
msgstr "Jendela"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:2
 | 
			
		||||
msgid "Activate the window menu"
 | 
			
		||||
msgstr "Mengaktifkan menu jendela"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:3
 | 
			
		||||
msgid "Toggle fullscreen mode"
 | 
			
		||||
msgstr "Menjungkit mode layar penuh"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:4
 | 
			
		||||
msgid "Toggle maximization state"
 | 
			
		||||
msgstr "Menjungkit kondisi dimaksimalkan"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:5
 | 
			
		||||
msgid "Maximize window"
 | 
			
		||||
msgstr "Maksimalkan ukuran jendela"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:6
 | 
			
		||||
msgid "Restore window"
 | 
			
		||||
msgstr "Kembalikan ukuran jendela"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:7
 | 
			
		||||
msgid "Toggle shaded state"
 | 
			
		||||
msgstr "Jungkitkan kondisi berbayang"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:8
 | 
			
		||||
msgid "Close window"
 | 
			
		||||
msgstr "Tutup jendela"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:9
 | 
			
		||||
msgid "Hide window"
 | 
			
		||||
msgstr "Sembunyikan jendela"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:10
 | 
			
		||||
msgid "Move window"
 | 
			
		||||
msgstr "Pindahkan jendela"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:11
 | 
			
		||||
msgid "Resize window"
 | 
			
		||||
msgstr "Ubah ukuran jendela"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:12
 | 
			
		||||
msgid "Toggle window on all workspaces or one"
 | 
			
		||||
msgstr "Jungkitkan jendela pada semua atau satu area kerja"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:13
 | 
			
		||||
msgid "Raise window if covered, otherwise lower it"
 | 
			
		||||
msgstr "Naikkan jendela bila tertutup jendela lain, sebaliknya diturunkan"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:14
 | 
			
		||||
msgid "Raise window above other windows"
 | 
			
		||||
msgstr "Naikkan jendela di atas jendela-jendela lain"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:15
 | 
			
		||||
msgid "Lower window below other windows"
 | 
			
		||||
msgstr "Turunkan jendela di bawah jendela lain"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:16
 | 
			
		||||
msgid "Maximize window vertically"
 | 
			
		||||
msgstr "Maksimalkan ukuran jendela secara vertikal"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:17
 | 
			
		||||
msgid "Maximize window horizontally"
 | 
			
		||||
msgstr "Maksimalkan ukuran jendela secara horisontal"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:18
 | 
			
		||||
msgid "View split on left"
 | 
			
		||||
msgstr "Tampilan dipisah ke kiri"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:19
 | 
			
		||||
msgid "View split on right"
 | 
			
		||||
msgstr "Tampilan dipisah ke kanan"
 | 
			
		||||
 | 
			
		||||
#: ../data/mutter.desktop.in.h:1
 | 
			
		||||
#: data/mutter.desktop.in:4
 | 
			
		||||
msgid "Mutter"
 | 
			
		||||
msgstr "Mutter"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:1
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:7
 | 
			
		||||
msgid "Modifier to use for extended window management operations"
 | 
			
		||||
msgstr "Tombol yang digunakan untuk memperluas operasi manajemen jendela"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:2
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:8
 | 
			
		||||
msgid ""
 | 
			
		||||
"This key will initiate the \"overlay\", which is a combination window "
 | 
			
		||||
"overview and application launching system. The default is intended to be the "
 | 
			
		||||
@@ -282,11 +42,11 @@ msgstr ""
 | 
			
		||||
"\"Windows key\" pada perangkat keras PC. Diharapkan agar pengikatan ini "
 | 
			
		||||
"berupa baku atau diisi dengan kalimat kosong."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:3
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:20
 | 
			
		||||
msgid "Attach modal dialogs"
 | 
			
		||||
msgstr "Lampirkan dialog modal"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:4
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:21
 | 
			
		||||
msgid ""
 | 
			
		||||
"When true, instead of having independent titlebars, modal dialogs appear "
 | 
			
		||||
"attached to the titlebar of the parent window and are moved together with "
 | 
			
		||||
@@ -295,11 +55,11 @@ msgstr ""
 | 
			
		||||
"Jika bernilai \"true\", maka dialog modal akan muncul menempel pada baris "
 | 
			
		||||
"judul jendela utama dan bergerak seiring perpindahan jendela utama tersebut."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:5
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:30
 | 
			
		||||
msgid "Enable edge tiling when dropping windows on screen edges"
 | 
			
		||||
msgstr "Fungsikan pengubinan tepi ketika menjatuhkan jendela ke tepi layar"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:6
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:31
 | 
			
		||||
msgid ""
 | 
			
		||||
"If enabled, dropping windows on vertical screen edges maximizes them "
 | 
			
		||||
"vertically and resizes them horizontally to cover half of the available "
 | 
			
		||||
@@ -310,11 +70,11 @@ msgstr ""
 | 
			
		||||
"menutupi separuh dari area yang tersedia. Menjatuhkan jendela pada tepi atas "
 | 
			
		||||
"layar akan memaksimalkan mereka sepenuhnya."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:7
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:40
 | 
			
		||||
msgid "Workspaces are managed dynamically"
 | 
			
		||||
msgstr "Ruang kerja dikelola secara dinamis"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:8
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:41
 | 
			
		||||
msgid ""
 | 
			
		||||
"Determines whether workspaces are managed dynamically or whether there's a "
 | 
			
		||||
"static number of workspaces (determined by the num-workspaces key in org."
 | 
			
		||||
@@ -324,11 +84,11 @@ msgstr ""
 | 
			
		||||
"sejumlah tetap ruang kerja (ditentukan oleh kunci num-workspaces dalam org."
 | 
			
		||||
"gnome.desktop.wm.preferences)."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:9
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:50
 | 
			
		||||
msgid "Workspaces only on primary"
 | 
			
		||||
msgstr "Ruang kerja hanya pada primer"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:10
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:51
 | 
			
		||||
msgid ""
 | 
			
		||||
"Determines whether workspace switching should happen for windows on all "
 | 
			
		||||
"monitors or only for windows on the primary monitor."
 | 
			
		||||
@@ -336,11 +96,11 @@ msgstr ""
 | 
			
		||||
"Menentukan apakah perpindahan area kerja hanya terjadi pada jendela aplikasi "
 | 
			
		||||
"di semua monitor atau hanya untuk jendela pada monitor utama."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:11
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:59
 | 
			
		||||
msgid "No tab popup"
 | 
			
		||||
msgstr "Tak ada popup tab"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:12
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:60
 | 
			
		||||
msgid ""
 | 
			
		||||
"Determines whether the use of popup and highlight frame should be disabled "
 | 
			
		||||
"for window cycling."
 | 
			
		||||
@@ -348,11 +108,11 @@ msgstr ""
 | 
			
		||||
"Menentukan apakah penggunaan popup dan rangka penyorot mesti dimatikan bagi "
 | 
			
		||||
"perputaran jendela."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:13
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:68
 | 
			
		||||
msgid "Delay focus changes until the pointer stops moving"
 | 
			
		||||
msgstr "Tunda perubahan fokus sampai penunjuk berhenti bergerak"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:14
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:69
 | 
			
		||||
msgid ""
 | 
			
		||||
"If set to true, and the focus mode is either \"sloppy\" or \"mouse\" then "
 | 
			
		||||
"the focus will not be changed immediately when entering a window, but only "
 | 
			
		||||
@@ -362,11 +122,11 @@ msgstr ""
 | 
			
		||||
"fokus tak akan berubah seketika saat memasuki suatu jendela, tapi hanya "
 | 
			
		||||
"setelah penunjuk berhenti bergerak."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:15
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:79
 | 
			
		||||
msgid "Draggable border width"
 | 
			
		||||
msgstr "Lebar batas yang dapat diseret"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:16
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:80
 | 
			
		||||
msgid ""
 | 
			
		||||
"The amount of total draggable borders. If the theme's visible borders are "
 | 
			
		||||
"not enough, invisible borders will be added to meet this value."
 | 
			
		||||
@@ -374,11 +134,11 @@ msgstr ""
 | 
			
		||||
"Total banyaknya tepi yang dapat diseret. Bila tepi tema yang nampak tak "
 | 
			
		||||
"cukup, tepi tak nampak akan ditambahkan untuk memenuhi nilai ini."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:17
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:89
 | 
			
		||||
msgid "Auto maximize nearly monitor sized windows"
 | 
			
		||||
msgstr "Memaksimalkan otomatis hampir memantau jendela yang ditata ukurannya"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:18
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:90
 | 
			
		||||
msgid ""
 | 
			
		||||
"If enabled, new windows that are initially the size of the monitor "
 | 
			
		||||
"automatically get maximized."
 | 
			
		||||
@@ -386,11 +146,11 @@ msgstr ""
 | 
			
		||||
"Bila difungsikan, jendela baru yang awalnya seukuran monitor secara otomatis "
 | 
			
		||||
"dimaksimalkan."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:19
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:98
 | 
			
		||||
msgid "Place new windows in the center"
 | 
			
		||||
msgstr "Tempatkan jendela baru di tengah"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:20
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:99
 | 
			
		||||
msgid ""
 | 
			
		||||
"When true, the new windows will always be put in the center of the active "
 | 
			
		||||
"screen of the monitor."
 | 
			
		||||
@@ -398,85 +158,93 @@ msgstr ""
 | 
			
		||||
"Ketika berisi true, jendela baru akan selalu diletakkan di tengah dari layar "
 | 
			
		||||
"aktif dari monitor."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:21
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:120
 | 
			
		||||
msgid "Select window from tab popup"
 | 
			
		||||
msgstr "Pilih jendela dari popup tab"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:22
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:125
 | 
			
		||||
msgid "Cancel tab popup"
 | 
			
		||||
msgstr "Batalkan popup tab"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:1
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:6
 | 
			
		||||
msgid "Switch to VT 1"
 | 
			
		||||
msgstr "Pindah ke VT 1"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:2
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:10
 | 
			
		||||
msgid "Switch to VT 2"
 | 
			
		||||
msgstr "Pindah ke VT 2"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:3
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:14
 | 
			
		||||
msgid "Switch to VT 3"
 | 
			
		||||
msgstr "Pindah ke VT 3"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:4
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:18
 | 
			
		||||
msgid "Switch to VT 4"
 | 
			
		||||
msgstr "Pindah ke VT 4"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:5
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:22
 | 
			
		||||
msgid "Switch to VT 5"
 | 
			
		||||
msgstr "Pindah ke VT 5"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:6
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:26
 | 
			
		||||
msgid "Switch to VT 6"
 | 
			
		||||
msgstr "Pindah ke VT 6"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:7
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:30
 | 
			
		||||
msgid "Switch to VT 7"
 | 
			
		||||
msgstr "Pindah ke VT 7"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:34
 | 
			
		||||
msgid "Switch to VT 8"
 | 
			
		||||
msgstr "Pindah ke VT 8"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:38
 | 
			
		||||
msgid "Switch to VT 9"
 | 
			
		||||
msgstr "Pindah ke VT 9"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:42
 | 
			
		||||
msgid "Switch to VT 10"
 | 
			
		||||
msgstr "Pindah ke VT 10"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:46
 | 
			
		||||
msgid "Switch to VT 11"
 | 
			
		||||
msgstr "Pindah ke VT 11"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:50
 | 
			
		||||
msgid "Switch to VT 12"
 | 
			
		||||
msgstr "Pindah ke VT 12"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:515
 | 
			
		||||
#: src/backends/meta-input-settings.c:1707
 | 
			
		||||
msgid "Switch monitor"
 | 
			
		||||
msgstr "Berpindah monitor"
 | 
			
		||||
 | 
			
		||||
#: src/backends/meta-input-settings.c:1709
 | 
			
		||||
msgid "Show on-screen help"
 | 
			
		||||
msgstr "Tampilkan bantuan pada layar"
 | 
			
		||||
 | 
			
		||||
#: src/backends/meta-monitor-manager.c:514
 | 
			
		||||
msgid "Built-in display"
 | 
			
		||||
msgstr "Tampilan bawaan"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:538
 | 
			
		||||
#: src/backends/meta-monitor-manager.c:537
 | 
			
		||||
msgid "Unknown"
 | 
			
		||||
msgstr "Tak Dikenal"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:540
 | 
			
		||||
#: src/backends/meta-monitor-manager.c:539
 | 
			
		||||
msgid "Unknown Display"
 | 
			
		||||
msgstr "Tampilan Tak Dikenal"
 | 
			
		||||
 | 
			
		||||
#. TRANSLATORS: this is a monitor vendor name, followed by a
 | 
			
		||||
#. * size in inches, like 'Dell 15"'
 | 
			
		||||
#.
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:548
 | 
			
		||||
#: src/backends/meta-monitor-manager.c:547
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s %s"
 | 
			
		||||
msgstr "%s %s"
 | 
			
		||||
 | 
			
		||||
#. This probably means that a non-WM compositor like xcompmgr is running;
 | 
			
		||||
#. * we have no way to get it to exit
 | 
			
		||||
#: ../src/compositor/compositor.c:456
 | 
			
		||||
#: src/compositor/compositor.c:463
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Another compositing manager is already running on screen %i on display \"%s"
 | 
			
		||||
@@ -484,76 +252,76 @@ msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Manajer komposit lain telah berjalan pada layar %i pada tampilan \"%s\"."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/bell.c:194
 | 
			
		||||
#: src/core/bell.c:194
 | 
			
		||||
msgid "Bell event"
 | 
			
		||||
msgstr "Bel peristiwa"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:127
 | 
			
		||||
#: src/core/delete.c:127
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "“%s” is not responding."
 | 
			
		||||
msgstr "\"%s\" tak merespon."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:129
 | 
			
		||||
#: src/core/delete.c:129
 | 
			
		||||
msgid "Application is not responding."
 | 
			
		||||
msgstr "Aplikasi tak merespon."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:134
 | 
			
		||||
#: src/core/delete.c:134
 | 
			
		||||
msgid ""
 | 
			
		||||
"You may choose to wait a short while for it to continue or force the "
 | 
			
		||||
"application to quit entirely."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Anda bisa memilih untuk menunggu sebentar atau memaksa aplikasi keluar."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:141
 | 
			
		||||
#: src/core/delete.c:141
 | 
			
		||||
msgid "_Wait"
 | 
			
		||||
msgstr "_Tunggu"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:141
 | 
			
		||||
#: src/core/delete.c:141
 | 
			
		||||
msgid "_Force Quit"
 | 
			
		||||
msgstr "_Matikan Paksa"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/display.c:555
 | 
			
		||||
#: src/core/display.c:590
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Failed to open X Window System display '%s'\n"
 | 
			
		||||
msgstr "Gagal membuka tampilan X Window System '%s'\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:181
 | 
			
		||||
#: src/core/main.c:182
 | 
			
		||||
msgid "Disable connection to session manager"
 | 
			
		||||
msgstr "Menonaktifkan koneksi ke manajer sesi"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:187
 | 
			
		||||
#: src/core/main.c:188
 | 
			
		||||
msgid "Replace the running window manager"
 | 
			
		||||
msgstr "Mengganti manajer jendela yang tengah berjalan"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:193
 | 
			
		||||
#: src/core/main.c:194
 | 
			
		||||
msgid "Specify session management ID"
 | 
			
		||||
msgstr "Tentukan kode pengaturan sesi"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:198
 | 
			
		||||
#: src/core/main.c:199
 | 
			
		||||
msgid "X Display to use"
 | 
			
		||||
msgstr "Tampilan X yang digunakna"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:204
 | 
			
		||||
#: src/core/main.c:205
 | 
			
		||||
msgid "Initialize session from savefile"
 | 
			
		||||
msgstr "Aktifkan sesi dari berkas simpanan"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:210
 | 
			
		||||
#: src/core/main.c:211
 | 
			
		||||
msgid "Make X calls synchronous"
 | 
			
		||||
msgstr "Buat panggilan X selaras"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:217
 | 
			
		||||
#: src/core/main.c:218
 | 
			
		||||
msgid "Run as a wayland compositor"
 | 
			
		||||
msgstr "Jalankan sebagai kompositor wayland"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:223
 | 
			
		||||
#: src/core/main.c:224
 | 
			
		||||
msgid "Run as a nested compositor"
 | 
			
		||||
msgstr "Jalankan sebagai kompositor bersarang"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:231
 | 
			
		||||
#: src/core/main.c:232
 | 
			
		||||
msgid "Run as a full display server, rather than nested"
 | 
			
		||||
msgstr "Jalankan sebagai server tampilan penuh, ketimbang tampilan bersarang"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/mutter.c:39
 | 
			
		||||
#: src/core/mutter.c:39
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"mutter %s\n"
 | 
			
		||||
@@ -569,20 +337,20 @@ msgstr ""
 | 
			
		||||
"TIDAK ADA jaminan, bahkan untuk KELAYAKAN JUAL atau KELAYAKAN UNTUK KEGUNAAN "
 | 
			
		||||
"TERTENTU.\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/mutter.c:53
 | 
			
		||||
#: src/core/mutter.c:53
 | 
			
		||||
msgid "Print version"
 | 
			
		||||
msgstr "Cetak versi"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/mutter.c:59
 | 
			
		||||
#: src/core/mutter.c:59
 | 
			
		||||
msgid "Mutter plugin to use"
 | 
			
		||||
msgstr "Pengaya Mutter yang dipakai"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/prefs.c:1997
 | 
			
		||||
#: src/core/prefs.c:1997
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Workspace %d"
 | 
			
		||||
msgstr "Area kerja %d"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:521
 | 
			
		||||
#: src/core/screen.c:521
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Display \"%s\" already has a window manager; try using the --replace option "
 | 
			
		||||
@@ -591,16 +359,21 @@ msgstr ""
 | 
			
		||||
"Tampilan \"%s\" sudah memiliki manajer jendela; cobalah gunakan pilihan --"
 | 
			
		||||
"replace untuk mengganti manajer jendela saat ini."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:603
 | 
			
		||||
#: src/core/screen.c:606
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Screen %d on display '%s' is invalid\n"
 | 
			
		||||
msgstr "Layar %d pada tampilan '%s' tidak benar\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/util.c:121
 | 
			
		||||
#: src/core/util.c:120
 | 
			
		||||
msgid "Mutter was compiled without support for verbose mode\n"
 | 
			
		||||
msgstr "Muter dikompilasi tanpa dukungan mode riuh\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/x11/session.c:1815
 | 
			
		||||
#: src/wayland/meta-wayland-tablet-pad.c:595
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Mode Switch: Mode %d"
 | 
			
		||||
msgstr "Tukar Mode: Mode %d"
 | 
			
		||||
 | 
			
		||||
#: src/x11/session.c:1815
 | 
			
		||||
msgid ""
 | 
			
		||||
"These windows do not support "save current setup" and will have to "
 | 
			
		||||
"be restarted manually next time you log in."
 | 
			
		||||
@@ -608,7 +381,7 @@ msgstr ""
 | 
			
		||||
"Jendela ini tidak bisa "menyimpan setelan aktif saat ini" dan bila "
 | 
			
		||||
"log masuk kali lain Anda harus menjalankannya ulang."
 | 
			
		||||
 | 
			
		||||
#: ../src/x11/window-props.c:549
 | 
			
		||||
#: src/x11/window-props.c:548
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s (on %s)"
 | 
			
		||||
msgstr "%s (pada %s)"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/ig.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/ig.po
									
									
									
									
									
								
							@@ -7,6 +7,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2006-07-07 10:49+0100\n"
 | 
			
		||||
"Last-Translator: Onye, Sylvester <sylvester@wazobialinux.com>\n"
 | 
			
		||||
"Language-Team: Igbo\n"
 | 
			
		||||
"Language: ig\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/is.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/is.po
									
									
									
									
									
								
							@@ -11,6 +11,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2003-06-22 17:16--100\n"
 | 
			
		||||
"Last-Translator: Samuel Jon Gunnarsson <sammi@techattack.nu>\n"
 | 
			
		||||
"Language-Team: Icelandic <gnome@techattack.nu>\n"
 | 
			
		||||
"Language: is\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=utf-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/ka.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/ka.po
									
									
									
									
									
								
							@@ -15,6 +15,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2007-09-07 14:18+0200\n"
 | 
			
		||||
"Last-Translator: Vladimer Sichinava ვლადიმერ სიჭინავა <vsichi@gnome.org>\n"
 | 
			
		||||
"Language-Team: Georgian <http://mail.gnome.org/mailman/listinfo/gnome-ge-list>\n"
 | 
			
		||||
"Language: ka\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								po/ko.po
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								po/ko.po
									
									
									
									
									
								
							@@ -22,7 +22,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2016-03-13 04:38+0900\n"
 | 
			
		||||
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
 | 
			
		||||
"Language-Team: GNOME Korea <gnome-kr@googlegroups.com>\n"
 | 
			
		||||
"Language: Korean\n"
 | 
			
		||||
"Language: ko\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/ku.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/ku.po
									
									
									
									
									
								
							@@ -11,6 +11,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2007-03-04 21:37+0100\n"
 | 
			
		||||
"Last-Translator: Erdal Ronahi <erdal.ronahi@gmail.com>\n"
 | 
			
		||||
"Language-Team: Kurdish <gnu-ku-wergerandin@lists.sourceforge.net>\n"
 | 
			
		||||
"Language: ku\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/la.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/la.po
									
									
									
									
									
								
							@@ -11,6 +11,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2008-10-17 22:07-0400\n"
 | 
			
		||||
"Last-Translator: Thomas Thurman <tthurman@gnome.org>\n"
 | 
			
		||||
"Language-Team: Latin <la@li.org>\n"
 | 
			
		||||
"Language: la\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										58
									
								
								po/lt.po
									
									
									
									
									
								
							
							
						
						
									
										58
									
								
								po/lt.po
									
									
									
									
									
								
							@@ -6,15 +6,15 @@
 | 
			
		||||
# Tomas Kuliavas <tokul@users.sourceforge.net>, 2003.
 | 
			
		||||
# Žygimantas Beručka <zygis@gnome.org>, 2004-2007.
 | 
			
		||||
# Gintautas Miliauskas <gintautas@miliauskas.lt>, 2007-2009, 2010.
 | 
			
		||||
# Aurimas Černius <aurisc4@gmail.com>, 2013, 2014, 2015.
 | 
			
		||||
# Aurimas Černius <aurisc4@gmail.com>, 2013, 2014, 2015, 2016.
 | 
			
		||||
#
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: lt\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
 | 
			
		||||
"product=mutter&keywords=I18N+L10N&component=general\n"
 | 
			
		||||
"POT-Creation-Date: 2016-02-26 09:54+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2016-02-25 15:18+0200\n"
 | 
			
		||||
"POT-Creation-Date: 2016-07-22 13:03+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2016-08-03 22:14+0300\n"
 | 
			
		||||
"Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
 | 
			
		||||
"Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n"
 | 
			
		||||
"Language: lt\n"
 | 
			
		||||
@@ -23,7 +23,7 @@ msgstr ""
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
 | 
			
		||||
"%100<10 || n%100>=20) ? 1 : 2);\n"
 | 
			
		||||
"X-Generator: Poedit 1.8.7\n"
 | 
			
		||||
"X-Generator: Gtranslator 2.91.7\n"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:1
 | 
			
		||||
msgid "Navigation"
 | 
			
		||||
@@ -457,36 +457,45 @@ msgstr "Persijungti į VT 11"
 | 
			
		||||
msgid "Switch to VT 12"
 | 
			
		||||
msgstr "Persijungti į VT 12"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:518
 | 
			
		||||
#: ../src/backends/meta-input-settings.c:1601
 | 
			
		||||
#| msgid "Switch system controls"
 | 
			
		||||
msgid "Switch monitor"
 | 
			
		||||
msgstr "Perjungti monitorių"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-input-settings.c:1603
 | 
			
		||||
msgid "Show on-screen help"
 | 
			
		||||
msgstr "Rodyti pagalbą ekrane"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:515
 | 
			
		||||
msgid "Built-in display"
 | 
			
		||||
msgstr "Integruotas vaizduoklis"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:544
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:538
 | 
			
		||||
msgid "Unknown"
 | 
			
		||||
msgstr "Nežinomas"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:546
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:540
 | 
			
		||||
msgid "Unknown Display"
 | 
			
		||||
msgstr "Nežinomas vaizduoklis"
 | 
			
		||||
 | 
			
		||||
#. TRANSLATORS: this is a monitor vendor name, followed by a
 | 
			
		||||
#. * size in inches, like 'Dell 15"'
 | 
			
		||||
#.
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:554
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:548
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s %s"
 | 
			
		||||
msgstr "%s %s"
 | 
			
		||||
 | 
			
		||||
#. This probably means that a non-WM compositor like xcompmgr is running;
 | 
			
		||||
#. * we have no way to get it to exit
 | 
			
		||||
#: ../src/compositor/compositor.c:456
 | 
			
		||||
#: ../src/compositor/compositor.c:463
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Another compositing manager is already running on screen %i on display \"%s"
 | 
			
		||||
"\"."
 | 
			
		||||
msgstr "Kita kompozicijos tvarkytuvė jau veikia ekrane %i vaizduoklyje „%s“."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/bell.c:185
 | 
			
		||||
#: ../src/core/bell.c:194
 | 
			
		||||
msgid "Bell event"
 | 
			
		||||
msgstr "Skambučio įvykis"
 | 
			
		||||
 | 
			
		||||
@@ -513,44 +522,44 @@ msgstr "_Laukti"
 | 
			
		||||
msgid "_Force Quit"
 | 
			
		||||
msgstr "_Priverstinai išeiti"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/display.c:555
 | 
			
		||||
#: ../src/core/display.c:590
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Failed to open X Window System display '%s'\n"
 | 
			
		||||
msgstr "Nepavyko atverti X Window sistemos ekrano „%s“\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:181
 | 
			
		||||
#: ../src/core/main.c:182
 | 
			
		||||
msgid "Disable connection to session manager"
 | 
			
		||||
msgstr "Išjungti susijungimą su sesijos tvarkytuve"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:187
 | 
			
		||||
#: ../src/core/main.c:188
 | 
			
		||||
msgid "Replace the running window manager"
 | 
			
		||||
msgstr "Pakeisti veikiančią langų tvarkytuvę"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:193
 | 
			
		||||
#: ../src/core/main.c:194
 | 
			
		||||
msgid "Specify session management ID"
 | 
			
		||||
msgstr "Nurodyti sesijos tvarkymo ID"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:198
 | 
			
		||||
#: ../src/core/main.c:199
 | 
			
		||||
msgid "X Display to use"
 | 
			
		||||
msgstr "Naudotinas X ekranas"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:204
 | 
			
		||||
#: ../src/core/main.c:205
 | 
			
		||||
msgid "Initialize session from savefile"
 | 
			
		||||
msgstr "Inicializuoti sesiją iš išsaugojimo failo"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:210
 | 
			
		||||
#: ../src/core/main.c:211
 | 
			
		||||
msgid "Make X calls synchronous"
 | 
			
		||||
msgstr "Sinchronizuoti X iškvietimus"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:217
 | 
			
		||||
#: ../src/core/main.c:218
 | 
			
		||||
msgid "Run as a wayland compositor"
 | 
			
		||||
msgstr "Vykdyti kaip wayland kompozitorių"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:223
 | 
			
		||||
#: ../src/core/main.c:224
 | 
			
		||||
msgid "Run as a nested compositor"
 | 
			
		||||
msgstr "Vykdyti kaip įdėtinį kompozitorių"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:231
 | 
			
		||||
#: ../src/core/main.c:232
 | 
			
		||||
msgid "Run as a full display server, rather than nested"
 | 
			
		||||
msgstr "Vykdyti kaip visą vaizduoklio serverį, o ne įdėtinį"
 | 
			
		||||
 | 
			
		||||
@@ -598,10 +607,15 @@ msgstr ""
 | 
			
		||||
msgid "Screen %d on display '%s' is invalid\n"
 | 
			
		||||
msgstr "Ekranas %d vaizduoklyje „%s“ netinkamas\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/util.c:121
 | 
			
		||||
#: ../src/core/util.c:120
 | 
			
		||||
msgid "Mutter was compiled without support for verbose mode\n"
 | 
			
		||||
msgstr "Mutter buvo sukompiliuota be išsamaus veikimo veiksenos\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/wayland/meta-wayland-tablet-pad.c:595
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Mode Switch: Mode %d"
 | 
			
		||||
msgstr "Veiksenos perjungimas: veiksena %d"
 | 
			
		||||
 | 
			
		||||
#: ../src/x11/session.c:1815
 | 
			
		||||
msgid ""
 | 
			
		||||
"These windows do not support "save current setup" and will have to "
 | 
			
		||||
@@ -610,7 +624,7 @@ msgstr ""
 | 
			
		||||
"Šie langai nepalaiko "išsaugoti esamus nustatymus" komandos ir "
 | 
			
		||||
"turi būti paleisti rankiniu būdu, kai prisijungsite kitą kartą."
 | 
			
		||||
 | 
			
		||||
#: ../src/x11/window-props.c:549
 | 
			
		||||
#: ../src/x11/window-props.c:548
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s (on %s)"
 | 
			
		||||
msgstr "%s (kompiuteryje %s)"
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2009-03-15 16:17+0530\n"
 | 
			
		||||
"Last-Translator: Sangeeta Kumari <sangeeta09@gmail.com>\n"
 | 
			
		||||
"Language-Team: Maithili <maithili.sf.net>\n"
 | 
			
		||||
"Language: mai\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/mg.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/mg.po
									
									
									
									
									
								
							@@ -12,6 +12,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2006-06-29 22:27+0300\n"
 | 
			
		||||
"Last-Translator: Fano Rajaonarisoa <rajfanhar@yahoo.fr>\n"
 | 
			
		||||
"Language-Team: Malagasy <i18n-malagasy-gnome@gna.org>\n"
 | 
			
		||||
"Language: mg\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/mk.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/mk.po
									
									
									
									
									
								
							@@ -19,6 +19,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2008-02-03 12:50+0100\n"
 | 
			
		||||
"Last-Translator: Arangel Angov <ufo@linux.net.mk>\n"
 | 
			
		||||
"Language-Team: Macedonian <ossm-members@hedona.on.net.mk>\n"
 | 
			
		||||
"Language: mk\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/mn.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/mn.po
									
									
									
									
									
								
							@@ -17,6 +17,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2004-01-03 15:09+0100\n"
 | 
			
		||||
"Last-Translator: Sanlig Badral <Badral@openmn.org>\n"
 | 
			
		||||
"Language-Team: Mongolian <openmn-core@lists.sf.net>\n"
 | 
			
		||||
"Language: mn\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/ms.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/ms.po
									
									
									
									
									
								
							@@ -11,6 +11,7 @@ msgstr ""
 | 
			
		||||
"Last-Translator: Hasbullah Bin Pit <sebol@ikhlas.com>\n"
 | 
			
		||||
"Language-Team: Projek Gabai (Bahasa Melayu) <gabai-penyumbang@lists."
 | 
			
		||||
"sourceforge.net>\n"
 | 
			
		||||
"Language: ms\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								po/nb.po
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								po/nb.po
									
									
									
									
									
								
							@@ -10,7 +10,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2015-03-19 21:24+0100\n"
 | 
			
		||||
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
 | 
			
		||||
"Language-Team: Norwegian bokmål <i18n-no@lister.ping.uio.no>\n"
 | 
			
		||||
"Language: \n"
 | 
			
		||||
"Language: nb\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2010-08-08 15:45+0100\n"
 | 
			
		||||
"Last-Translator: Nils-Christoph Fiedler <ncfiedler@gnome.org>\n"
 | 
			
		||||
"Language-Team: Low German <nds-lowgerman@lists.sourceforge.net>\n"
 | 
			
		||||
"Language: nds\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/ne.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/ne.po
									
									
									
									
									
								
							@@ -12,6 +12,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2007-12-26 15:17+0545\n"
 | 
			
		||||
"Last-Translator: Nabin Gautam <nabin@mpp.org.np>\n"
 | 
			
		||||
"Language-Team: Nepali <info@mpp.org.np>\n"
 | 
			
		||||
"Language: ne\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/nn.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/nn.po
									
									
									
									
									
								
							@@ -11,6 +11,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2009-06-16 09:54-0400\n"
 | 
			
		||||
"Last-Translator: Eskild Hustvedt <eskildh@gnome.org>\n"
 | 
			
		||||
"Language-Team: Norwegian Nynorsk <i18n-no@lister.ping.uio.no>\n"
 | 
			
		||||
"Language: nn\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										319
									
								
								po/pl.po
									
									
									
									
									
								
							
							
						
						
									
										319
									
								
								po/pl.po
									
									
									
									
									
								
							@@ -1,284 +1,280 @@
 | 
			
		||||
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 | 
			
		||||
# Aviary.pl
 | 
			
		||||
# Jeśli masz jakiekolwiek uwagi odnoszące się do tłumaczenia lub chcesz
 | 
			
		||||
# pomóc w jego rozwijaniu i pielęgnowaniu, napisz do nas:
 | 
			
		||||
# gnomepl@aviary.pl
 | 
			
		||||
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 | 
			
		||||
# Polish translation for mutter.
 | 
			
		||||
# Copyright © 2002-2016 the mutter authors.
 | 
			
		||||
# This file is distributed under the same license as the mutter package.
 | 
			
		||||
# Zbigniew Chyla <chyla@alice.ci.pwr.wroc.pl>, 2002-2003.
 | 
			
		||||
# Artur Flinta <aflinta@at.kernel.pl>, 2003-2005.
 | 
			
		||||
# Marek Stępień <marcoos@aviary.pl>, 2007.
 | 
			
		||||
# Wadim Dziedzic <wdziedzic@aviary.pl>, 2007.
 | 
			
		||||
# Tomasz Dominikowski <dominikowski@gmail.com>, 2008-2009.
 | 
			
		||||
# Piotr Drąg <piotrdrag@gmail.com>, 2010-2016.
 | 
			
		||||
# Aviary.pl <gnomepl@aviary.pl>, 2007-2016.
 | 
			
		||||
# Aviary.pl <community-poland@mozilla.org>, 2007-2016.
 | 
			
		||||
#
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: mutter\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2016-02-25 17:29+0100\n"
 | 
			
		||||
"PO-Revision-Date: 2016-02-25 17:30+0100\n"
 | 
			
		||||
"POT-Creation-Date: 2016-08-20 10:10+0200\n"
 | 
			
		||||
"PO-Revision-Date: 2016-08-20 10:12+0200\n"
 | 
			
		||||
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
 | 
			
		||||
"Language-Team: Polish <gnomepl@aviary.pl>\n"
 | 
			
		||||
"Language-Team: Polish <community-poland@mozilla.org>\n"
 | 
			
		||||
"Language: pl\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
 | 
			
		||||
"|| n%100>=20) ? 1 : 2);\n"
 | 
			
		||||
"X-Poedit-Language: Polish\n"
 | 
			
		||||
"X-Poedit-Country: Poland\n"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:1
 | 
			
		||||
#: data/50-mutter-navigation.xml:6
 | 
			
		||||
msgid "Navigation"
 | 
			
		||||
msgstr "Nawigacja"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:2
 | 
			
		||||
#: data/50-mutter-navigation.xml:9
 | 
			
		||||
msgid "Move window to workspace 1"
 | 
			
		||||
msgstr "Przeniesienie okna na 1. obszar roboczy"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:3
 | 
			
		||||
#: data/50-mutter-navigation.xml:12
 | 
			
		||||
msgid "Move window to workspace 2"
 | 
			
		||||
msgstr "Przeniesienie okna na 2. obszar roboczy"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:4
 | 
			
		||||
#: data/50-mutter-navigation.xml:15
 | 
			
		||||
msgid "Move window to workspace 3"
 | 
			
		||||
msgstr "Przeniesienie okna na 3. obszar roboczy"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:5
 | 
			
		||||
#: data/50-mutter-navigation.xml:18
 | 
			
		||||
msgid "Move window to workspace 4"
 | 
			
		||||
msgstr "Przeniesienie okna na 4. obszar roboczy"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:6
 | 
			
		||||
#: data/50-mutter-navigation.xml:21
 | 
			
		||||
msgid "Move window to last workspace"
 | 
			
		||||
msgstr "Przeniesienie okna na ostatni obszar roboczy"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:7
 | 
			
		||||
#: data/50-mutter-navigation.xml:24
 | 
			
		||||
msgid "Move window one workspace to the left"
 | 
			
		||||
msgstr "Przeniesienie okna o obszar roboczy w lewo"
 | 
			
		||||
msgstr "Przeniesienie okna o obszar roboczy w lewo"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:8
 | 
			
		||||
#: data/50-mutter-navigation.xml:27
 | 
			
		||||
msgid "Move window one workspace to the right"
 | 
			
		||||
msgstr "Przeniesienie okna o obszar roboczy w prawo"
 | 
			
		||||
msgstr "Przeniesienie okna o obszar roboczy w prawo"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:9
 | 
			
		||||
#: data/50-mutter-navigation.xml:30
 | 
			
		||||
msgid "Move window one workspace up"
 | 
			
		||||
msgstr "Przeniesienie okna o obszar roboczy w górę"
 | 
			
		||||
msgstr "Przeniesienie okna o obszar roboczy w górę"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:10
 | 
			
		||||
#: data/50-mutter-navigation.xml:33
 | 
			
		||||
msgid "Move window one workspace down"
 | 
			
		||||
msgstr "Przeniesienie okna o obszar roboczy w dół"
 | 
			
		||||
msgstr "Przeniesienie okna o obszar roboczy w dół"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:11
 | 
			
		||||
#: data/50-mutter-navigation.xml:36
 | 
			
		||||
msgid "Move window one monitor to the left"
 | 
			
		||||
msgstr "Przeniesienie okna na monitor po lewej"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:12
 | 
			
		||||
#: data/50-mutter-navigation.xml:39
 | 
			
		||||
msgid "Move window one monitor to the right"
 | 
			
		||||
msgstr "Przeniesienie okna na monitor po prawej"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:13
 | 
			
		||||
#: data/50-mutter-navigation.xml:42
 | 
			
		||||
msgid "Move window one monitor up"
 | 
			
		||||
msgstr "Przeniesienie okna na monitor na górze"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:14
 | 
			
		||||
#: data/50-mutter-navigation.xml:45
 | 
			
		||||
msgid "Move window one monitor down"
 | 
			
		||||
msgstr "Przeniesienie okna na monitor na dole"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:15
 | 
			
		||||
#: data/50-mutter-navigation.xml:49
 | 
			
		||||
msgid "Switch applications"
 | 
			
		||||
msgstr "Przełączenie programów"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:16
 | 
			
		||||
#: data/50-mutter-navigation.xml:54
 | 
			
		||||
msgid "Switch to previous application"
 | 
			
		||||
msgstr "Przełączenie na poprzedni program"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:17
 | 
			
		||||
#: data/50-mutter-navigation.xml:58
 | 
			
		||||
msgid "Switch windows"
 | 
			
		||||
msgstr "Przełączenie okien"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:18
 | 
			
		||||
#: data/50-mutter-navigation.xml:63
 | 
			
		||||
msgid "Switch to previous window"
 | 
			
		||||
msgstr "Przełączenie na poprzednie okno"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:19
 | 
			
		||||
#: data/50-mutter-navigation.xml:67
 | 
			
		||||
msgid "Switch windows of an application"
 | 
			
		||||
msgstr "Przełączenie między oknami programu"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:20
 | 
			
		||||
#: data/50-mutter-navigation.xml:72
 | 
			
		||||
msgid "Switch to previous window of an application"
 | 
			
		||||
msgstr "Przełączenie na poprzednie okno programu"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:21
 | 
			
		||||
#: data/50-mutter-navigation.xml:76
 | 
			
		||||
msgid "Switch system controls"
 | 
			
		||||
msgstr "Przełączenie kontroli systemowej"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:22
 | 
			
		||||
#: data/50-mutter-navigation.xml:81
 | 
			
		||||
msgid "Switch to previous system control"
 | 
			
		||||
msgstr "Przełączenie na poprzednią kontrolę systemową"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:23
 | 
			
		||||
#: data/50-mutter-navigation.xml:85
 | 
			
		||||
msgid "Switch windows directly"
 | 
			
		||||
msgstr "Bezpośrednie przełączenie między oknami"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:24
 | 
			
		||||
#: data/50-mutter-navigation.xml:90
 | 
			
		||||
msgid "Switch directly to previous window"
 | 
			
		||||
msgstr "Bezpośrednie przełączenie na poprzednie okno"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:25
 | 
			
		||||
#: data/50-mutter-navigation.xml:94
 | 
			
		||||
msgid "Switch windows of an app directly"
 | 
			
		||||
msgstr "Bezpośrednie przełączenie między oknami programu"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:26
 | 
			
		||||
#: data/50-mutter-navigation.xml:99
 | 
			
		||||
msgid "Switch directly to previous window of an app"
 | 
			
		||||
msgstr "Bezpośrednie przełączenie na poprzednie okno programu"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:27
 | 
			
		||||
#: data/50-mutter-navigation.xml:103
 | 
			
		||||
msgid "Switch system controls directly"
 | 
			
		||||
msgstr "Bezpośrednie przełączenie kontroli systemowej"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:28
 | 
			
		||||
#: data/50-mutter-navigation.xml:108
 | 
			
		||||
msgid "Switch directly to previous system control"
 | 
			
		||||
msgstr "Bezpośrednie przełączenie na poprzednią kontrolę systemową"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:29
 | 
			
		||||
#: data/50-mutter-navigation.xml:111
 | 
			
		||||
msgid "Hide all normal windows"
 | 
			
		||||
msgstr "Ukrycie wszystkich zwykłych okien"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:30
 | 
			
		||||
#: data/50-mutter-navigation.xml:114
 | 
			
		||||
msgid "Switch to workspace 1"
 | 
			
		||||
msgstr "Przełączenie na 1. obszar roboczy"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:31
 | 
			
		||||
#: data/50-mutter-navigation.xml:117
 | 
			
		||||
msgid "Switch to workspace 2"
 | 
			
		||||
msgstr "Przełączenie na 2. obszar roboczy"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:32
 | 
			
		||||
#: data/50-mutter-navigation.xml:120
 | 
			
		||||
msgid "Switch to workspace 3"
 | 
			
		||||
msgstr "Przełączenie na 3. obszar roboczy"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:33
 | 
			
		||||
#: data/50-mutter-navigation.xml:123
 | 
			
		||||
msgid "Switch to workspace 4"
 | 
			
		||||
msgstr "Przełączenie na 4. obszar roboczy"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:34
 | 
			
		||||
#: data/50-mutter-navigation.xml:126
 | 
			
		||||
msgid "Switch to last workspace"
 | 
			
		||||
msgstr "Przełączenie na ostatni obszar roboczy"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:35
 | 
			
		||||
#: data/50-mutter-navigation.xml:129
 | 
			
		||||
msgid "Move to workspace left"
 | 
			
		||||
msgstr "Przeniesienie na lewy obszar roboczy"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:36
 | 
			
		||||
#: data/50-mutter-navigation.xml:132
 | 
			
		||||
msgid "Move to workspace right"
 | 
			
		||||
msgstr "Przeniesienie na prawy obszar roboczy"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:37
 | 
			
		||||
#: data/50-mutter-navigation.xml:135
 | 
			
		||||
msgid "Move to workspace above"
 | 
			
		||||
msgstr "Przeniesienie na górny obszar roboczy"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:38
 | 
			
		||||
#: data/50-mutter-navigation.xml:138
 | 
			
		||||
msgid "Move to workspace below"
 | 
			
		||||
msgstr "Przeniesienie na dolny obszar roboczy"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-system.xml.in.h:1
 | 
			
		||||
#: data/50-mutter-system.xml:6
 | 
			
		||||
msgid "System"
 | 
			
		||||
msgstr "System"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-system.xml.in.h:2
 | 
			
		||||
#: data/50-mutter-system.xml:8
 | 
			
		||||
msgid "Show the run command prompt"
 | 
			
		||||
msgstr "Wyświetlenie okna wykonania polecenia"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-system.xml.in.h:3
 | 
			
		||||
#: data/50-mutter-system.xml:10
 | 
			
		||||
msgid "Show the activities overview"
 | 
			
		||||
msgstr "Wyświetlenie podglądu aktywności"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:1
 | 
			
		||||
#: data/50-mutter-windows.xml:6
 | 
			
		||||
msgid "Windows"
 | 
			
		||||
msgstr "Okna"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:2
 | 
			
		||||
#: data/50-mutter-windows.xml:8
 | 
			
		||||
msgid "Activate the window menu"
 | 
			
		||||
msgstr "Otwarcie menu okna"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:3
 | 
			
		||||
#: data/50-mutter-windows.xml:10
 | 
			
		||||
msgid "Toggle fullscreen mode"
 | 
			
		||||
msgstr "Przełączenie trybu pełnoekranowego"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:4
 | 
			
		||||
#: data/50-mutter-windows.xml:12
 | 
			
		||||
msgid "Toggle maximization state"
 | 
			
		||||
msgstr "Przełączenie stanu maksymalizacji"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:5
 | 
			
		||||
#: data/50-mutter-windows.xml:14
 | 
			
		||||
msgid "Maximize window"
 | 
			
		||||
msgstr "Maksymalizacja okna"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:6
 | 
			
		||||
#: data/50-mutter-windows.xml:16
 | 
			
		||||
msgid "Restore window"
 | 
			
		||||
msgstr "Przywrócenie okna"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:7
 | 
			
		||||
#: data/50-mutter-windows.xml:18
 | 
			
		||||
msgid "Toggle shaded state"
 | 
			
		||||
msgstr "Przełączenie trybu zwinięcia"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:8
 | 
			
		||||
#: data/50-mutter-windows.xml:20
 | 
			
		||||
msgid "Close window"
 | 
			
		||||
msgstr "Zamknięcie okna"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:9
 | 
			
		||||
#: data/50-mutter-windows.xml:22
 | 
			
		||||
msgid "Hide window"
 | 
			
		||||
msgstr "Ukrycie okna"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:10
 | 
			
		||||
#: data/50-mutter-windows.xml:24
 | 
			
		||||
msgid "Move window"
 | 
			
		||||
msgstr "Przeniesienie okna"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:11
 | 
			
		||||
#: data/50-mutter-windows.xml:26
 | 
			
		||||
msgid "Resize window"
 | 
			
		||||
msgstr "Zmiana rozmiaru okna"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:12
 | 
			
		||||
#: data/50-mutter-windows.xml:29
 | 
			
		||||
msgid "Toggle window on all workspaces or one"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Przełączenie obecności okna na wszystkich obszarach roboczych lub jednym"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:13
 | 
			
		||||
#: data/50-mutter-windows.xml:31
 | 
			
		||||
msgid "Raise window if covered, otherwise lower it"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Wysunięcie okna, jeśli jest zasłonięte, odsunięcie w przeciwnym wypadku"
 | 
			
		||||
"Wysunięcie okna, jeśli jest zasłonięte, odsunięcie w przeciwnym wypadku"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:14
 | 
			
		||||
#: data/50-mutter-windows.xml:33
 | 
			
		||||
msgid "Raise window above other windows"
 | 
			
		||||
msgstr "Wysunięcie okna przed pozostałe"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:15
 | 
			
		||||
#: data/50-mutter-windows.xml:35
 | 
			
		||||
msgid "Lower window below other windows"
 | 
			
		||||
msgstr "Odsunięcie okna pod pozostałe"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:16
 | 
			
		||||
#: data/50-mutter-windows.xml:37
 | 
			
		||||
msgid "Maximize window vertically"
 | 
			
		||||
msgstr "Pionowa maksymalizacja okna"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:17
 | 
			
		||||
#: data/50-mutter-windows.xml:39
 | 
			
		||||
msgid "Maximize window horizontally"
 | 
			
		||||
msgstr "Pozioma maksymalizacja okna"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:18
 | 
			
		||||
#: data/50-mutter-windows.xml:43
 | 
			
		||||
msgid "View split on left"
 | 
			
		||||
msgstr "Podział widoku po lewej"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:19
 | 
			
		||||
#: data/50-mutter-windows.xml:47
 | 
			
		||||
msgid "View split on right"
 | 
			
		||||
msgstr "Podział widoku po prawej"
 | 
			
		||||
 | 
			
		||||
#: ../data/mutter.desktop.in.h:1
 | 
			
		||||
#: data/mutter.desktop.in:4
 | 
			
		||||
msgid "Mutter"
 | 
			
		||||
msgstr "Mutter"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:1
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:7
 | 
			
		||||
msgid "Modifier to use for extended window management operations"
 | 
			
		||||
msgstr "Modyfikator używany do rozszerzonych działań menedżera okien"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:2
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:8
 | 
			
		||||
msgid ""
 | 
			
		||||
"This key will initiate the \"overlay\", which is a combination window "
 | 
			
		||||
"overview and application launching system. The default is intended to be the "
 | 
			
		||||
@@ -286,15 +282,15 @@ msgid ""
 | 
			
		||||
"default or set to the empty string."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Ten klawisz inicjuje tryb „overlay” (nakładki), który jest połączeniem "
 | 
			
		||||
"podglądu okien i systemu uruchamiania programów. Domyślnie jest przeznaczony "
 | 
			
		||||
"do powiązania z klawiszem „Windows” na komputerach typu PC. Ustawienie tego "
 | 
			
		||||
"podglądu okien i systemu uruchamiania programów. Domyślnie jest przeznaczony "
 | 
			
		||||
"do powiązania z klawiszem „Windows” na komputerach typu PC. Ustawienie tego "
 | 
			
		||||
"powiązania powinno być domyślne lub puste."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:3
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:20
 | 
			
		||||
msgid "Attach modal dialogs"
 | 
			
		||||
msgstr "Dołączanie modalnych okien dialogowych"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:4
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:21
 | 
			
		||||
msgid ""
 | 
			
		||||
"When true, instead of having independent titlebars, modal dialogs appear "
 | 
			
		||||
"attached to the titlebar of the parent window and are moved together with "
 | 
			
		||||
@@ -302,44 +298,44 @@ msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Jeśli wynosi wartość „true”, to modalne okna dialogowe pojawiają się "
 | 
			
		||||
"dołączone do paska tytułowego okna nadrzędnego zamiast posiadać oddzielne "
 | 
			
		||||
"paski tytułowe i są przenoszone razem z nim."
 | 
			
		||||
"paski tytułowe i są przenoszone razem z nim."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:5
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:30
 | 
			
		||||
msgid "Enable edge tiling when dropping windows on screen edges"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Włączenie kafelkowania przy krawędziach podczas przenoszenia okien do "
 | 
			
		||||
"krawędzi ekranu"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:6
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:31
 | 
			
		||||
msgid ""
 | 
			
		||||
"If enabled, dropping windows on vertical screen edges maximizes them "
 | 
			
		||||
"vertically and resizes them horizontally to cover half of the available "
 | 
			
		||||
"area. Dropping windows on the top screen edge maximizes them completely."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Jeśli jest włączone, to przeniesienie okien do pionowych krawędzi ekranu "
 | 
			
		||||
"spowoduje ich maksymalizację w pionie i zmianę rozmiaru w poziomie, aby "
 | 
			
		||||
"spowoduje ich maksymalizację w pionie i zmianę rozmiaru w poziomie, aby "
 | 
			
		||||
"pokryć połowę dostępnego obszaru. Przeniesienie okien na górną krawędź "
 | 
			
		||||
"ekranu spowoduje ich całkowitą maksymalizację."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:7
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:40
 | 
			
		||||
msgid "Workspaces are managed dynamically"
 | 
			
		||||
msgstr "Dynamiczne zarządzanie obszarami roboczymi"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:8
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:41
 | 
			
		||||
msgid ""
 | 
			
		||||
"Determines whether workspaces are managed dynamically or whether there's a "
 | 
			
		||||
"static number of workspaces (determined by the num-workspaces key in org."
 | 
			
		||||
"gnome.desktop.wm.preferences)."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Określa, czy obszary robocze są zarządzane dynamicznie, czy istnieje "
 | 
			
		||||
"statyczna liczba obszarów (określona przez klucz „num-workspaces” w „org."
 | 
			
		||||
"statyczna liczba obszarów (określona przez klucz „num-workspaces” w „org."
 | 
			
		||||
"gnome.desktop.wm.preferences”)."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:9
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:50
 | 
			
		||||
msgid "Workspaces only on primary"
 | 
			
		||||
msgstr "Obszary robocze tylko na pierwszym monitorze"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:10
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:51
 | 
			
		||||
msgid ""
 | 
			
		||||
"Determines whether workspace switching should happen for windows on all "
 | 
			
		||||
"monitors or only for windows on the primary monitor."
 | 
			
		||||
@@ -347,11 +343,11 @@ msgstr ""
 | 
			
		||||
"Określa, czy przełączanie obszarów roboczych powinno być wykonywane dla "
 | 
			
		||||
"okien na wszystkich monitorach, czy tylko dla okien na pierwszym monitorze."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:11
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:59
 | 
			
		||||
msgid "No tab popup"
 | 
			
		||||
msgstr "Bez wyskakującego okna dla tabulacji"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:12
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:60
 | 
			
		||||
msgid ""
 | 
			
		||||
"Determines whether the use of popup and highlight frame should be disabled "
 | 
			
		||||
"for window cycling."
 | 
			
		||||
@@ -359,25 +355,25 @@ msgstr ""
 | 
			
		||||
"Określa, czy wyłączyć użycie wyskakującej, wyróżnionej ramki podczas "
 | 
			
		||||
"przełączania między oknami."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:13
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:68
 | 
			
		||||
msgid "Delay focus changes until the pointer stops moving"
 | 
			
		||||
msgstr "Opóźnienie zmian aktywności do zatrzymania ruchu kursora"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:14
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:69
 | 
			
		||||
msgid ""
 | 
			
		||||
"If set to true, and the focus mode is either \"sloppy\" or \"mouse\" then "
 | 
			
		||||
"the focus will not be changed immediately when entering a window, but only "
 | 
			
		||||
"after the pointer stops moving."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Jeśli jest ustawione na wartość „true”, a tryb aktywności to „sloppy” lub "
 | 
			
		||||
"Jeśli jest ustawione na wartość „true”, a tryb aktywności to „sloppy” lub "
 | 
			
		||||
"„mouse”, to aktywność nie będzie zmieniana od razu po przejściu do okna, ale "
 | 
			
		||||
"dopiero po zatrzymaniu ruchu kursora."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:15
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:79
 | 
			
		||||
msgid "Draggable border width"
 | 
			
		||||
msgstr "Szerokość krawędzi możliwej do przenoszenia"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:16
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:80
 | 
			
		||||
msgid ""
 | 
			
		||||
"The amount of total draggable borders. If the theme's visible borders are "
 | 
			
		||||
"not enough, invisible borders will be added to meet this value."
 | 
			
		||||
@@ -386,25 +382,25 @@ msgstr ""
 | 
			
		||||
"krawędzie motywu nie są dostateczne, to zostaną dodane niewidoczne "
 | 
			
		||||
"krawędzie, aby spełnić tę wartość."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:17
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:89
 | 
			
		||||
msgid "Auto maximize nearly monitor sized windows"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Automatyczne maksymalizowanie okien o rozmiarze zbliżonym do rozmiaru "
 | 
			
		||||
"Automatyczne maksymalizowanie okien o rozmiarze zbliżonym do rozmiaru "
 | 
			
		||||
"monitora"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:18
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:90
 | 
			
		||||
msgid ""
 | 
			
		||||
"If enabled, new windows that are initially the size of the monitor "
 | 
			
		||||
"automatically get maximized."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Jeśli jest włączone, to nowe okna o początkowym rozmiarze zbliżonym do "
 | 
			
		||||
"Jeśli jest włączone, to nowe okna o początkowym rozmiarze zbliżonym do "
 | 
			
		||||
"rozmiaru monitora zostają automatycznie maksymalizowane."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:19
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:98
 | 
			
		||||
msgid "Place new windows in the center"
 | 
			
		||||
msgstr "Umieszczanie nowych okien na środku"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:20
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:99
 | 
			
		||||
msgid ""
 | 
			
		||||
"When true, the new windows will always be put in the center of the active "
 | 
			
		||||
"screen of the monitor."
 | 
			
		||||
@@ -412,85 +408,93 @@ msgstr ""
 | 
			
		||||
"Jeśli wynosi wartość „true”, to nowe okna będą zawsze umieszczane na środku "
 | 
			
		||||
"aktywnego ekranu monitora."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:21
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:120
 | 
			
		||||
msgid "Select window from tab popup"
 | 
			
		||||
msgstr "Wybór okna z wyskakującego okna dla tabulacji"
 | 
			
		||||
msgstr "Wybór okna z wyskakującego okna dla tabulacji"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:22
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:125
 | 
			
		||||
msgid "Cancel tab popup"
 | 
			
		||||
msgstr "Anulowanie wyskakującego okna dla tabulacji"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:1
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:6
 | 
			
		||||
msgid "Switch to VT 1"
 | 
			
		||||
msgstr "Przełączenie na 1. konsolę wirtualną"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:2
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:10
 | 
			
		||||
msgid "Switch to VT 2"
 | 
			
		||||
msgstr "Przełączenie na 2. konsolę wirtualną"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:3
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:14
 | 
			
		||||
msgid "Switch to VT 3"
 | 
			
		||||
msgstr "Przełączenie na 3. konsolę wirtualną"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:4
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:18
 | 
			
		||||
msgid "Switch to VT 4"
 | 
			
		||||
msgstr "Przełączenie na 4. konsolę wirtualną"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:5
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:22
 | 
			
		||||
msgid "Switch to VT 5"
 | 
			
		||||
msgstr "Przełączenie na 5. konsolę wirtualną"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:6
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:26
 | 
			
		||||
msgid "Switch to VT 6"
 | 
			
		||||
msgstr "Przełączenie na 6. konsolę wirtualną"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:7
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:30
 | 
			
		||||
msgid "Switch to VT 7"
 | 
			
		||||
msgstr "Przełączenie na 7. konsolę wirtualną"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:34
 | 
			
		||||
msgid "Switch to VT 8"
 | 
			
		||||
msgstr "Przełączenie na 8. konsolę wirtualną"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:38
 | 
			
		||||
msgid "Switch to VT 9"
 | 
			
		||||
msgstr "Przełączenie na 9. konsolę wirtualną"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:42
 | 
			
		||||
msgid "Switch to VT 10"
 | 
			
		||||
msgstr "Przełączenie na 10. konsolę wirtualną"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:46
 | 
			
		||||
msgid "Switch to VT 11"
 | 
			
		||||
msgstr "Przełączenie na 11. konsolę wirtualną"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:50
 | 
			
		||||
msgid "Switch to VT 12"
 | 
			
		||||
msgstr "Przełączenie na 12. konsolę wirtualną"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:518
 | 
			
		||||
#: src/backends/meta-input-settings.c:1707
 | 
			
		||||
msgid "Switch monitor"
 | 
			
		||||
msgstr "Przełączenie monitora"
 | 
			
		||||
 | 
			
		||||
#: src/backends/meta-input-settings.c:1709
 | 
			
		||||
msgid "Show on-screen help"
 | 
			
		||||
msgstr "Wyświetlenie pomocy na ekranie"
 | 
			
		||||
 | 
			
		||||
#: src/backends/meta-monitor-manager.c:514
 | 
			
		||||
msgid "Built-in display"
 | 
			
		||||
msgstr "Wbudowany ekran"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:544
 | 
			
		||||
#: src/backends/meta-monitor-manager.c:537
 | 
			
		||||
msgid "Unknown"
 | 
			
		||||
msgstr "Nieznany"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:546
 | 
			
		||||
#: src/backends/meta-monitor-manager.c:539
 | 
			
		||||
msgid "Unknown Display"
 | 
			
		||||
msgstr "Nieznany ekran"
 | 
			
		||||
 | 
			
		||||
#. TRANSLATORS: this is a monitor vendor name, followed by a
 | 
			
		||||
#. * size in inches, like 'Dell 15"'
 | 
			
		||||
#.
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:554
 | 
			
		||||
#: src/backends/meta-monitor-manager.c:547
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s %s"
 | 
			
		||||
msgstr "%s %s"
 | 
			
		||||
 | 
			
		||||
#. This probably means that a non-WM compositor like xcompmgr is running;
 | 
			
		||||
#. * we have no way to get it to exit
 | 
			
		||||
#: ../src/compositor/compositor.c:456
 | 
			
		||||
#: src/compositor/compositor.c:463
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Another compositing manager is already running on screen %i on display \"%s"
 | 
			
		||||
@@ -498,75 +502,75 @@ msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Inny menedżer składania jest już uruchomiony na podekranie %i ekranu „%s”."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/bell.c:185
 | 
			
		||||
#: src/core/bell.c:194
 | 
			
		||||
msgid "Bell event"
 | 
			
		||||
msgstr "Zdarzenie sygnału dźwiękowego"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:127
 | 
			
		||||
#: src/core/delete.c:127
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "“%s” is not responding."
 | 
			
		||||
msgstr "Okno „%s” nie odpowiada."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:129
 | 
			
		||||
#: src/core/delete.c:129
 | 
			
		||||
msgid "Application is not responding."
 | 
			
		||||
msgstr "Program nie odpowiada."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:134
 | 
			
		||||
#: src/core/delete.c:134
 | 
			
		||||
msgid ""
 | 
			
		||||
"You may choose to wait a short while for it to continue or force the "
 | 
			
		||||
"application to quit entirely."
 | 
			
		||||
msgstr "Można poczekać chwilę dłużej lub wymusić zakończenie programu."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:141
 | 
			
		||||
#: src/core/delete.c:141
 | 
			
		||||
msgid "_Wait"
 | 
			
		||||
msgstr "_Czekaj"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:141
 | 
			
		||||
#: src/core/delete.c:141
 | 
			
		||||
msgid "_Force Quit"
 | 
			
		||||
msgstr "_Zakończ"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/display.c:555
 | 
			
		||||
#: src/core/display.c:590
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Failed to open X Window System display '%s'\n"
 | 
			
		||||
msgstr "Otwarcie połączenia z ekranem „%s” systemu X Window się nie powiodło\n"
 | 
			
		||||
msgstr "Otwarcie połączenia z ekranem „%s” systemu X Window się nie powiodło\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:181
 | 
			
		||||
#: src/core/main.c:182
 | 
			
		||||
msgid "Disable connection to session manager"
 | 
			
		||||
msgstr "Rozłącza połączenie z menedżerem sesji"
 | 
			
		||||
msgstr "Rozłącza połączenie z menedżerem sesji"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:187
 | 
			
		||||
#: src/core/main.c:188
 | 
			
		||||
msgid "Replace the running window manager"
 | 
			
		||||
msgstr "Zastępuje uruchomionego menedżera okien"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:193
 | 
			
		||||
#: src/core/main.c:194
 | 
			
		||||
msgid "Specify session management ID"
 | 
			
		||||
msgstr "Podaje identyfikator zarządzania sesją"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:198
 | 
			
		||||
#: src/core/main.c:199
 | 
			
		||||
msgid "X Display to use"
 | 
			
		||||
msgstr "Używany ekran X"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:204
 | 
			
		||||
#: src/core/main.c:205
 | 
			
		||||
msgid "Initialize session from savefile"
 | 
			
		||||
msgstr "Inicjuje sesję z zapisanego pliku"
 | 
			
		||||
msgstr "Inicjuje sesję z zapisanego pliku"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:210
 | 
			
		||||
#: src/core/main.c:211
 | 
			
		||||
msgid "Make X calls synchronous"
 | 
			
		||||
msgstr "Synchroniczne wywołania X"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:217
 | 
			
		||||
#: src/core/main.c:218
 | 
			
		||||
msgid "Run as a wayland compositor"
 | 
			
		||||
msgstr "Uruchamia jako menedżer składania Wayland"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:223
 | 
			
		||||
#: src/core/main.c:224
 | 
			
		||||
msgid "Run as a nested compositor"
 | 
			
		||||
msgstr "Uruchamia jako osadzony menedżer składania"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:231
 | 
			
		||||
#: src/core/main.c:232
 | 
			
		||||
msgid "Run as a full display server, rather than nested"
 | 
			
		||||
msgstr "Uruchamia jako pełny serwer wyświetlania zamiast osadzonego"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/mutter.c:39
 | 
			
		||||
#: src/core/mutter.c:39
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"mutter %s\n"
 | 
			
		||||
@@ -582,20 +586,20 @@ msgstr ""
 | 
			
		||||
"Na program nie udziela się ŻADNYCH GWARANCJI, nawet domyślnej gwarancji\n"
 | 
			
		||||
"PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ.\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/mutter.c:53
 | 
			
		||||
#: src/core/mutter.c:53
 | 
			
		||||
msgid "Print version"
 | 
			
		||||
msgstr "Wyświetla wersję"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/mutter.c:59
 | 
			
		||||
#: src/core/mutter.c:59
 | 
			
		||||
msgid "Mutter plugin to use"
 | 
			
		||||
msgstr "Używana wtyczka menedżera Mutter"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/prefs.c:1997
 | 
			
		||||
#: src/core/prefs.c:1997
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Workspace %d"
 | 
			
		||||
msgstr "%d. obszar roboczy"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:521
 | 
			
		||||
#: src/core/screen.c:521
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Display \"%s\" already has a window manager; try using the --replace option "
 | 
			
		||||
@@ -604,17 +608,22 @@ msgstr ""
 | 
			
		||||
"Na ekranie „%s” działa już menedżer okien. Aby zastąpić działającego "
 | 
			
		||||
"menedżera okien, należy użyć opcji „--replace”."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:603
 | 
			
		||||
#: src/core/screen.c:606
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Screen %d on display '%s' is invalid\n"
 | 
			
		||||
msgstr "Podekran %d ekranu „%s” jest nieprawidłowy\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/util.c:118
 | 
			
		||||
#: src/core/util.c:120
 | 
			
		||||
msgid "Mutter was compiled without support for verbose mode\n"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Menedżer Mutter został skompilowany bez obsługi trybu z obszerną informacją\n"
 | 
			
		||||
"Menedżer Mutter został skompilowany bez obsługi trybu z obszerną informacją\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/x11/session.c:1815
 | 
			
		||||
#: src/wayland/meta-wayland-tablet-pad.c:595
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Mode Switch: Mode %d"
 | 
			
		||||
msgstr "Przełącznik trybu: tryb %d"
 | 
			
		||||
 | 
			
		||||
#: src/x11/session.c:1815
 | 
			
		||||
msgid ""
 | 
			
		||||
"These windows do not support "save current setup" and will have to "
 | 
			
		||||
"be restarted manually next time you log in."
 | 
			
		||||
@@ -622,7 +631,7 @@ msgstr ""
 | 
			
		||||
"Te okna nie obsługują opcji zapisu obecnego stanu („save current setup”), "
 | 
			
		||||
"więc przy następnym zalogowaniu będą musiały zostać uruchomione ręcznie."
 | 
			
		||||
 | 
			
		||||
#: ../src/x11/window-props.c:549
 | 
			
		||||
#: src/x11/window-props.c:548
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s (on %s)"
 | 
			
		||||
msgstr "%s (na %s)"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										580
									
								
								po/pt_BR.po
									
									
									
									
									
								
							
							
						
						
									
										580
									
								
								po/pt_BR.po
									
									
									
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
# Brazilian Portuguese translation of mutter.
 | 
			
		||||
# Copyright (C) 2002-2014 Free Software Foundation, Inc.
 | 
			
		||||
# Copyright (C) 2002-2016 Free Software Foundation, Inc.
 | 
			
		||||
# This file is distributed under the same license as the mutter package.
 | 
			
		||||
# Sun G11n <gnome_int_l10n@ireland.sun.com>, 2002.
 | 
			
		||||
# Evandro Fernandes Giovanini <evandrofg@ig.com.br>, 2002, 2003, 2006.
 | 
			
		||||
@@ -14,279 +14,35 @@
 | 
			
		||||
# Antonio Fernandes C. Neto <fernandes@pelivre.org>, 2010.
 | 
			
		||||
# Rodrigo Padula de Oliveira <contato@rodrigopadula.com>, 2011.
 | 
			
		||||
# Rafael Ferreira <rafael.f.f1@gmail.com>, 2013, 2014.
 | 
			
		||||
# Enrico Nicoletto <liverig@gmail.com>, 2012, 2014.
 | 
			
		||||
# Artur de Aquino Morais <artur.morais93@outlook.com>, 2016.
 | 
			
		||||
# Enrico Nicoletto <liverig@gmail.com>, 2012, 2014, 2016.
 | 
			
		||||
#
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: mutter\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
 | 
			
		||||
"product=mutter&keywords=I18N+L10N&component=general\n"
 | 
			
		||||
"POT-Creation-Date: 2016-02-25 13:40+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2016-02-25 13:41-0300\n"
 | 
			
		||||
"Last-Translator: Artur de Aquino Morais <artur.morais93@outlook.com>\n"
 | 
			
		||||
"POT-Creation-Date: 2016-08-19 21:04+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2016-08-22 18:04-0300\n"
 | 
			
		||||
"Last-Translator: Enrico Nicoletto <liverig@gmail.com>\n"
 | 
			
		||||
"Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n"
 | 
			
		||||
"Language: pt_BR\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 | 
			
		||||
"X-Generator: Poedit 1.8.4\n"
 | 
			
		||||
"X-Generator: Poedit 1.7.3\n"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:1
 | 
			
		||||
msgid "Navigation"
 | 
			
		||||
msgstr "Navegação"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:2
 | 
			
		||||
msgid "Move window to workspace 1"
 | 
			
		||||
msgstr "Mover a janela para o espaço de trabalho 1"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:3
 | 
			
		||||
msgid "Move window to workspace 2"
 | 
			
		||||
msgstr "Mover a janela para o espaço de trabalho 2"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:4
 | 
			
		||||
msgid "Move window to workspace 3"
 | 
			
		||||
msgstr "Mover a janela para o espaço de trabalho 3"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:5
 | 
			
		||||
msgid "Move window to workspace 4"
 | 
			
		||||
msgstr "Mover a janela para o espaço de trabalho 4"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:6
 | 
			
		||||
msgid "Move window to last workspace"
 | 
			
		||||
msgstr "Mover a janela para o último espaço de trabalho"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:7
 | 
			
		||||
msgid "Move window one workspace to the left"
 | 
			
		||||
msgstr "Mover a janela um espaço de trabalho à esquerda"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:8
 | 
			
		||||
msgid "Move window one workspace to the right"
 | 
			
		||||
msgstr "Mover a janela um espaço de trabalho à direita"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:9
 | 
			
		||||
msgid "Move window one workspace up"
 | 
			
		||||
msgstr "Mover a janela um espaço de trabalho acima"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:10
 | 
			
		||||
msgid "Move window one workspace down"
 | 
			
		||||
msgstr "Mover a janela um espaço de trabalho abaixo"
 | 
			
		||||
 | 
			
		||||
# Em conformidade com a tradução do gsettings-desktop-schemas --Enrico
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:11
 | 
			
		||||
msgid "Move window one monitor to the left"
 | 
			
		||||
msgstr "Mover janela para o monitor da esquerda"
 | 
			
		||||
 | 
			
		||||
# Em conformidade com a tradução do gsettings-desktop-schemas --Enrico
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:12
 | 
			
		||||
msgid "Move window one monitor to the right"
 | 
			
		||||
msgstr "Mover janela para o monitor da direita"
 | 
			
		||||
 | 
			
		||||
# Em conformidade com a tradução do gsettings-desktop-schemas --Enrico
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:13
 | 
			
		||||
msgid "Move window one monitor up"
 | 
			
		||||
msgstr "Mover janela para o monitor acima"
 | 
			
		||||
 | 
			
		||||
# Em conformidade com a tradução do gsettings-desktop-schemas --Enrico
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:14
 | 
			
		||||
msgid "Move window one monitor down"
 | 
			
		||||
msgstr "Mover janela para o monitor abaixo"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:15
 | 
			
		||||
msgid "Switch applications"
 | 
			
		||||
msgstr "Alternar aplicativos"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:16
 | 
			
		||||
msgid "Switch to previous application"
 | 
			
		||||
msgstr "Alternar para o aplicativo anterior"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:17
 | 
			
		||||
msgid "Switch windows"
 | 
			
		||||
msgstr "Alternar janelas"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:18
 | 
			
		||||
msgid "Switch to previous window"
 | 
			
		||||
msgstr "Alternar para a janela anterior"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:19
 | 
			
		||||
msgid "Switch windows of an application"
 | 
			
		||||
msgstr "Alternar as janelas de um aplicativo"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:20
 | 
			
		||||
msgid "Switch to previous window of an application"
 | 
			
		||||
msgstr "Alternar para a janela anterior de um aplicativo"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:21
 | 
			
		||||
msgid "Switch system controls"
 | 
			
		||||
msgstr "Alternar os controles de sistema"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:22
 | 
			
		||||
msgid "Switch to previous system control"
 | 
			
		||||
msgstr "Alternar para o controle de sistema anterior"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:23
 | 
			
		||||
msgid "Switch windows directly"
 | 
			
		||||
msgstr "Alternar as janelas diretamente"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:24
 | 
			
		||||
msgid "Switch directly to previous window"
 | 
			
		||||
msgstr "Alternar diretamente para a janela anterior"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:25
 | 
			
		||||
msgid "Switch windows of an app directly"
 | 
			
		||||
msgstr "Alternar as janelas de um aplicativo diretamente"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:26
 | 
			
		||||
msgid "Switch directly to previous window of an app"
 | 
			
		||||
msgstr "Alternar diretamente para a janela anterior de um aplicativo"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:27
 | 
			
		||||
msgid "Switch system controls directly"
 | 
			
		||||
msgstr "Alternar os controles de sistema diretamente"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:28
 | 
			
		||||
msgid "Switch directly to previous system control"
 | 
			
		||||
msgstr "Alternar diretamente para o controle de sistema anterior"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:29
 | 
			
		||||
msgid "Hide all normal windows"
 | 
			
		||||
msgstr "Ocultar todas as janelas normais"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:30
 | 
			
		||||
msgid "Switch to workspace 1"
 | 
			
		||||
msgstr "Trocar para o espaço de trabalho 1"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:31
 | 
			
		||||
msgid "Switch to workspace 2"
 | 
			
		||||
msgstr "Trocar para o espaço de trabalho 2"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:32
 | 
			
		||||
msgid "Switch to workspace 3"
 | 
			
		||||
msgstr "Trocar para o espaço de trabalho 3"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:33
 | 
			
		||||
msgid "Switch to workspace 4"
 | 
			
		||||
msgstr "Trocar para o espaço de trabalho 4"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:34
 | 
			
		||||
msgid "Switch to last workspace"
 | 
			
		||||
msgstr "Trocar para o último espaço de trabalho"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:35
 | 
			
		||||
msgid "Move to workspace left"
 | 
			
		||||
msgstr "Move para o espaço de trabalho à esquerda"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:36
 | 
			
		||||
msgid "Move to workspace right"
 | 
			
		||||
msgstr "Move para o espaço de trabalho à direita"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:37
 | 
			
		||||
msgid "Move to workspace above"
 | 
			
		||||
msgstr "Mover para o espaço de trabalho acima"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:38
 | 
			
		||||
msgid "Move to workspace below"
 | 
			
		||||
msgstr "Mover para o espaço de trabalho abaixo"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-system.xml.in.h:1
 | 
			
		||||
msgid "System"
 | 
			
		||||
msgstr "Sistema"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-system.xml.in.h:2
 | 
			
		||||
msgid "Show the run command prompt"
 | 
			
		||||
msgstr "Mostrar o prompt de comando de execução"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-system.xml.in.h:3
 | 
			
		||||
msgid "Show the activities overview"
 | 
			
		||||
msgstr "Mostrar o panorama de atividades"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:1
 | 
			
		||||
msgid "Windows"
 | 
			
		||||
msgstr "Janelas"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:2
 | 
			
		||||
msgid "Activate the window menu"
 | 
			
		||||
msgstr "Ativar o menu da janela"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:3
 | 
			
		||||
msgid "Toggle fullscreen mode"
 | 
			
		||||
msgstr "Alternar modo de tela inteira"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:4
 | 
			
		||||
msgid "Toggle maximization state"
 | 
			
		||||
msgstr "Alternar estado de maximização"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:5
 | 
			
		||||
msgid "Maximize window"
 | 
			
		||||
msgstr "Maximizar a janela"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:6
 | 
			
		||||
msgid "Restore window"
 | 
			
		||||
msgstr "Restaurar janela"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:7
 | 
			
		||||
msgid "Toggle shaded state"
 | 
			
		||||
msgstr "Alternar estado sombreado"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:8
 | 
			
		||||
msgid "Close window"
 | 
			
		||||
msgstr "Fechar janela"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:9
 | 
			
		||||
msgid "Hide window"
 | 
			
		||||
msgstr "Ocultar janela"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:10
 | 
			
		||||
msgid "Move window"
 | 
			
		||||
msgstr "Mover janela"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:11
 | 
			
		||||
msgid "Resize window"
 | 
			
		||||
msgstr "Redimensionar janela"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:12
 | 
			
		||||
msgid "Toggle window on all workspaces or one"
 | 
			
		||||
msgstr "Alternar a janela em todos os espaços de trabalho ou em apenas um"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:13
 | 
			
		||||
msgid "Raise window if covered, otherwise lower it"
 | 
			
		||||
msgstr "Elevar a janela se estiver coberta; caso contrário, a abaixa"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:14
 | 
			
		||||
msgid "Raise window above other windows"
 | 
			
		||||
msgstr "Elevar a janela para frente das outras"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:15
 | 
			
		||||
msgid "Lower window below other windows"
 | 
			
		||||
msgstr "Colocar a janela atrás das outras"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:16
 | 
			
		||||
msgid "Maximize window vertically"
 | 
			
		||||
msgstr "Maximizar a janela verticalmente"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:17
 | 
			
		||||
msgid "Maximize window horizontally"
 | 
			
		||||
msgstr "Maximizar a janela horizontalmente"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:18
 | 
			
		||||
msgid "View split on left"
 | 
			
		||||
msgstr "Visualizar divisão à esquerda"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:19
 | 
			
		||||
msgid "View split on right"
 | 
			
		||||
msgstr "Visualizar divisão à direita"
 | 
			
		||||
 | 
			
		||||
#: ../data/mutter.desktop.in.h:1
 | 
			
		||||
#: data/mutter.desktop.in:4
 | 
			
		||||
msgid "Mutter"
 | 
			
		||||
msgstr "Mutter"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:1
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:7
 | 
			
		||||
msgid "Modifier to use for extended window management operations"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Modificador a ser usado para operações de gerenciamento de janelas extendido."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:2
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:8
 | 
			
		||||
msgid ""
 | 
			
		||||
"This key will initiate the \"overlay\", which is a combination window "
 | 
			
		||||
"overview and application launching system. The default is intended to be the "
 | 
			
		||||
@@ -298,11 +54,11 @@ msgstr ""
 | 
			
		||||
"\"tecla Windows\" no hardware do computador. É esperada para esta associação "
 | 
			
		||||
"tanto o padrão quanto a definição de uma string vazia."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:3
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:20
 | 
			
		||||
msgid "Attach modal dialogs"
 | 
			
		||||
msgstr "Anexar diálogos modais"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:4
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:21
 | 
			
		||||
msgid ""
 | 
			
		||||
"When true, instead of having independent titlebars, modal dialogs appear "
 | 
			
		||||
"attached to the titlebar of the parent window and are moved together with "
 | 
			
		||||
@@ -312,12 +68,12 @@ msgstr ""
 | 
			
		||||
"diálogos modais surgem anexados à barra de título da janela pai e são "
 | 
			
		||||
"movidos juntamente com a janela pai."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:5
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:30
 | 
			
		||||
msgid "Enable edge tiling when dropping windows on screen edges"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Habilitar contorno ladrilhado ao arrastar janelas sobre as bordas da tela"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:6
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:31
 | 
			
		||||
msgid ""
 | 
			
		||||
"If enabled, dropping windows on vertical screen edges maximizes them "
 | 
			
		||||
"vertically and resizes them horizontally to cover half of the available "
 | 
			
		||||
@@ -328,11 +84,11 @@ msgstr ""
 | 
			
		||||
"metade da área disponível. Arrastar janelas no topo da borda da tela as "
 | 
			
		||||
"maximiza completamente."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:7
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:40
 | 
			
		||||
msgid "Workspaces are managed dynamically"
 | 
			
		||||
msgstr "Áreas de trabalho são gerenciadas dinamicamente"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:8
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:41
 | 
			
		||||
msgid ""
 | 
			
		||||
"Determines whether workspaces are managed dynamically or whether there's a "
 | 
			
		||||
"static number of workspaces (determined by the num-workspaces key in org."
 | 
			
		||||
@@ -342,11 +98,11 @@ msgstr ""
 | 
			
		||||
"um número estático de áreas de trabalho (determinado pela chave num-"
 | 
			
		||||
"workspaces em org.gnome.desktop.wm.preferences)."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:9
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:50
 | 
			
		||||
msgid "Workspaces only on primary"
 | 
			
		||||
msgstr "Áreas de trabalho apenas para a principal"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:10
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:51
 | 
			
		||||
msgid ""
 | 
			
		||||
"Determines whether workspace switching should happen for windows on all "
 | 
			
		||||
"monitors or only for windows on the primary monitor."
 | 
			
		||||
@@ -354,11 +110,11 @@ msgstr ""
 | 
			
		||||
"Determina se a troca de área de trabalho deve ocorrer para janelas em todos "
 | 
			
		||||
"os monitores ou apenas para janelas no monitor principal."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:11
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:59
 | 
			
		||||
msgid "No tab popup"
 | 
			
		||||
msgstr "Nenhuma aba instantânea"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:12
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:60
 | 
			
		||||
msgid ""
 | 
			
		||||
"Determines whether the use of popup and highlight frame should be disabled "
 | 
			
		||||
"for window cycling."
 | 
			
		||||
@@ -366,11 +122,11 @@ msgstr ""
 | 
			
		||||
"Determina se a utilização de quadros instantâneos e destacados devem ser "
 | 
			
		||||
"desabilitados na alternância de janelas."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:13
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:68
 | 
			
		||||
msgid "Delay focus changes until the pointer stops moving"
 | 
			
		||||
msgstr "Atrasar alterações de foco até que o ponteiro pare de mover"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:14
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:69
 | 
			
		||||
msgid ""
 | 
			
		||||
"If set to true, and the focus mode is either \"sloppy\" or \"mouse\" then "
 | 
			
		||||
"the focus will not be changed immediately when entering a window, but only "
 | 
			
		||||
@@ -380,11 +136,11 @@ msgstr ""
 | 
			
		||||
"alterado imediatamente quando o ponteiro do mouse entrar na janela, e sim "
 | 
			
		||||
"quando parar de mover."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:15
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:79
 | 
			
		||||
msgid "Draggable border width"
 | 
			
		||||
msgstr "Largura da borda arrastável"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:16
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:80
 | 
			
		||||
msgid ""
 | 
			
		||||
"The amount of total draggable borders. If the theme's visible borders are "
 | 
			
		||||
"not enough, invisible borders will be added to meet this value."
 | 
			
		||||
@@ -393,11 +149,11 @@ msgstr ""
 | 
			
		||||
"não são suficientes, as bordas invisíveis serão adicionadas para encontrar "
 | 
			
		||||
"este valor."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:17
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:89
 | 
			
		||||
msgid "Auto maximize nearly monitor sized windows"
 | 
			
		||||
msgstr "Maximizar automaticamente janelas com tamanho próximo ao do monitor"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:18
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:90
 | 
			
		||||
msgid ""
 | 
			
		||||
"If enabled, new windows that are initially the size of the monitor "
 | 
			
		||||
"automatically get maximized."
 | 
			
		||||
@@ -405,11 +161,11 @@ msgstr ""
 | 
			
		||||
"Se habilitado, novas janelas que, ao iniciar, possuírem o tamanho do monitor "
 | 
			
		||||
"serão maximizadas automaticamente."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:19
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:98
 | 
			
		||||
msgid "Place new windows in the center"
 | 
			
		||||
msgstr "Posicionar novas janelas ao centro"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:20
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:99
 | 
			
		||||
msgid ""
 | 
			
		||||
"When true, the new windows will always be put in the center of the active "
 | 
			
		||||
"screen of the monitor."
 | 
			
		||||
@@ -417,85 +173,93 @@ msgstr ""
 | 
			
		||||
"Quando verdadeiro, as novas janelas serão sempre colocadas no centro da tela "
 | 
			
		||||
"ativa do monitor."
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:21
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:120
 | 
			
		||||
msgid "Select window from tab popup"
 | 
			
		||||
msgstr "Selecione a janela a partir da aba instantânea"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:22
 | 
			
		||||
#: data/org.gnome.mutter.gschema.xml.in:125
 | 
			
		||||
msgid "Cancel tab popup"
 | 
			
		||||
msgstr "Cancelar aba instantânea"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:1
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:6
 | 
			
		||||
msgid "Switch to VT 1"
 | 
			
		||||
msgstr "Trocar para o VT 1"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:2
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:10
 | 
			
		||||
msgid "Switch to VT 2"
 | 
			
		||||
msgstr "Trocar para o VT 2"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:3
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:14
 | 
			
		||||
msgid "Switch to VT 3"
 | 
			
		||||
msgstr "Trocar para o VT 3"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:4
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:18
 | 
			
		||||
msgid "Switch to VT 4"
 | 
			
		||||
msgstr "Trocar para o VT 4"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:5
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:22
 | 
			
		||||
msgid "Switch to VT 5"
 | 
			
		||||
msgstr "Trocar para o VT 5"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:6
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:26
 | 
			
		||||
msgid "Switch to VT 6"
 | 
			
		||||
msgstr "Trocar para o VT 6"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:7
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:30
 | 
			
		||||
msgid "Switch to VT 7"
 | 
			
		||||
msgstr "Trocar para o VT 7"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:34
 | 
			
		||||
msgid "Switch to VT 8"
 | 
			
		||||
msgstr "Trocar para o VT 8"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:38
 | 
			
		||||
msgid "Switch to VT 9"
 | 
			
		||||
msgstr "Trocar para o VT 9"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:42
 | 
			
		||||
msgid "Switch to VT 10"
 | 
			
		||||
msgstr "Trocar para o VT 10"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:46
 | 
			
		||||
msgid "Switch to VT 11"
 | 
			
		||||
msgstr "Trocar para o VT 11"
 | 
			
		||||
 | 
			
		||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12
 | 
			
		||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:50
 | 
			
		||||
msgid "Switch to VT 12"
 | 
			
		||||
msgstr "Trocar para o VT 12"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:518
 | 
			
		||||
#: src/backends/meta-input-settings.c:1707
 | 
			
		||||
msgid "Switch monitor"
 | 
			
		||||
msgstr "Trocar monitor"
 | 
			
		||||
 | 
			
		||||
#: src/backends/meta-input-settings.c:1709
 | 
			
		||||
msgid "Show on-screen help"
 | 
			
		||||
msgstr "Mostrar ajuda na tela"
 | 
			
		||||
 | 
			
		||||
#: src/backends/meta-monitor-manager.c:514
 | 
			
		||||
msgid "Built-in display"
 | 
			
		||||
msgstr "Tela embutida"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:544
 | 
			
		||||
#: src/backends/meta-monitor-manager.c:537
 | 
			
		||||
msgid "Unknown"
 | 
			
		||||
msgstr "Desconhecido"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:546
 | 
			
		||||
#: src/backends/meta-monitor-manager.c:539
 | 
			
		||||
msgid "Unknown Display"
 | 
			
		||||
msgstr "Monitor desconhecido"
 | 
			
		||||
 | 
			
		||||
#. TRANSLATORS: this is a monitor vendor name, followed by a
 | 
			
		||||
#. * size in inches, like 'Dell 15"'
 | 
			
		||||
#.
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:554
 | 
			
		||||
#: src/backends/meta-monitor-manager.c:547
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s %s"
 | 
			
		||||
msgstr "%s de %s"
 | 
			
		||||
 | 
			
		||||
#. This probably means that a non-WM compositor like xcompmgr is running;
 | 
			
		||||
#. * we have no way to get it to exit
 | 
			
		||||
#: ../src/compositor/compositor.c:456
 | 
			
		||||
#: src/compositor/compositor.c:463
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Another compositing manager is already running on screen %i on display \"%s"
 | 
			
		||||
@@ -503,20 +267,20 @@ msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Outro compositor de janelas está em execução na tela %i na área \"%s\"."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/bell.c:185
 | 
			
		||||
#: src/core/bell.c:194
 | 
			
		||||
msgid "Bell event"
 | 
			
		||||
msgstr "Evento de som"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:127
 | 
			
		||||
#: src/core/delete.c:127
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "“%s” is not responding."
 | 
			
		||||
msgstr "\"%s\" não está respondendo."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:129
 | 
			
		||||
#: src/core/delete.c:129
 | 
			
		||||
msgid "Application is not responding."
 | 
			
		||||
msgstr "O aplicativo não está respondendo."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:134
 | 
			
		||||
#: src/core/delete.c:134
 | 
			
		||||
msgid ""
 | 
			
		||||
"You may choose to wait a short while for it to continue or force the "
 | 
			
		||||
"application to quit entirely."
 | 
			
		||||
@@ -524,56 +288,56 @@ msgstr ""
 | 
			
		||||
"Você pode escolher aguardar um pouco e continuar ou forçar o aplicativo a "
 | 
			
		||||
"sair completamente."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:141
 | 
			
		||||
#: src/core/delete.c:141
 | 
			
		||||
msgid "_Wait"
 | 
			
		||||
msgstr "_Esperar"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:141
 | 
			
		||||
#: src/core/delete.c:141
 | 
			
		||||
msgid "_Force Quit"
 | 
			
		||||
msgstr "_Forçar sair"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/display.c:555
 | 
			
		||||
#: src/core/display.c:590
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Failed to open X Window System display '%s'\n"
 | 
			
		||||
msgstr "Falha ao abrir a exibição \"%s\" do sistema de janelas X\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:181
 | 
			
		||||
#: src/core/main.c:182
 | 
			
		||||
msgid "Disable connection to session manager"
 | 
			
		||||
msgstr "Desabilitar a conexão com o gerenciador de sessões"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:187
 | 
			
		||||
#: src/core/main.c:188
 | 
			
		||||
msgid "Replace the running window manager"
 | 
			
		||||
msgstr "Substituir o gerenciador de janelas em execução"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:193
 | 
			
		||||
#: src/core/main.c:194
 | 
			
		||||
msgid "Specify session management ID"
 | 
			
		||||
msgstr "Especificar o ID do gerenciador de sessões"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:198
 | 
			
		||||
#: src/core/main.c:199
 | 
			
		||||
msgid "X Display to use"
 | 
			
		||||
msgstr "Exibição do X a ser utilizada"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:204
 | 
			
		||||
#: src/core/main.c:205
 | 
			
		||||
msgid "Initialize session from savefile"
 | 
			
		||||
msgstr "Inicializar a sessão a partir do arquivo salvo"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:210
 | 
			
		||||
#: src/core/main.c:211
 | 
			
		||||
msgid "Make X calls synchronous"
 | 
			
		||||
msgstr "Fazer X chamadas síncronas"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:217
 | 
			
		||||
#: src/core/main.c:218
 | 
			
		||||
msgid "Run as a wayland compositor"
 | 
			
		||||
msgstr "Executar como um compositor wayland"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:223
 | 
			
		||||
#: src/core/main.c:224
 | 
			
		||||
msgid "Run as a nested compositor"
 | 
			
		||||
msgstr "Executar como um compositor aninhado"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:231
 | 
			
		||||
#: src/core/main.c:232
 | 
			
		||||
msgid "Run as a full display server, rather than nested"
 | 
			
		||||
msgstr "Executar como um servidor de tela cheia, ao invés de aninhado"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/mutter.c:39
 | 
			
		||||
#: src/core/mutter.c:39
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"mutter %s\n"
 | 
			
		||||
@@ -589,20 +353,20 @@ msgstr ""
 | 
			
		||||
"Não há NENHUMA garantia; nem mesmo para a COMERCIALIZAÇÃO ou ADEQUAÇÃO\n"
 | 
			
		||||
"PARA UM PROPÓSITO PARTICULAR.\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/mutter.c:53
 | 
			
		||||
#: src/core/mutter.c:53
 | 
			
		||||
msgid "Print version"
 | 
			
		||||
msgstr "Versão impressa"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/mutter.c:59
 | 
			
		||||
#: src/core/mutter.c:59
 | 
			
		||||
msgid "Mutter plugin to use"
 | 
			
		||||
msgstr "Plug-in do Mutter para usar"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/prefs.c:1997
 | 
			
		||||
#: src/core/prefs.c:1997
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Workspace %d"
 | 
			
		||||
msgstr "Espaço de trabalho %d"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:521
 | 
			
		||||
#: src/core/screen.c:521
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Display \"%s\" already has a window manager; try using the --replace option "
 | 
			
		||||
@@ -611,16 +375,21 @@ msgstr ""
 | 
			
		||||
"A exibição \"%s\" já possui um gerenciador de janelas; tente usar a opção --"
 | 
			
		||||
"replace para substituir o gerenciador de janelas atual."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:603
 | 
			
		||||
#: src/core/screen.c:606
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Screen %d on display '%s' is invalid\n"
 | 
			
		||||
msgstr "A tela %d na exibição \"%s\" é inválida\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/util.c:118
 | 
			
		||||
#: src/core/util.c:120
 | 
			
		||||
msgid "Mutter was compiled without support for verbose mode\n"
 | 
			
		||||
msgstr "O Mutter foi compilado sem suporte para modo detalhado\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/x11/session.c:1815
 | 
			
		||||
#: src/wayland/meta-wayland-tablet-pad.c:595
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Mode Switch: Mode %d"
 | 
			
		||||
msgstr "Alternador de modo: Modo %d"
 | 
			
		||||
 | 
			
		||||
#: src/x11/session.c:1815
 | 
			
		||||
msgid ""
 | 
			
		||||
"These windows do not support "save current setup" and will have to "
 | 
			
		||||
"be restarted manually next time you log in."
 | 
			
		||||
@@ -629,11 +398,192 @@ msgstr ""
 | 
			
		||||
"atual" e precisarão ser reiniciadas manualmente quando você reiniciar a "
 | 
			
		||||
"sessão."
 | 
			
		||||
 | 
			
		||||
#: ../src/x11/window-props.c:549
 | 
			
		||||
#: src/x11/window-props.c:548
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s (on %s)"
 | 
			
		||||
msgstr "%s (em %s)"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Navigation"
 | 
			
		||||
#~ msgstr "Navegação"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window to workspace 1"
 | 
			
		||||
#~ msgstr "Mover a janela para o espaço de trabalho 1"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window to workspace 2"
 | 
			
		||||
#~ msgstr "Mover a janela para o espaço de trabalho 2"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window to workspace 3"
 | 
			
		||||
#~ msgstr "Mover a janela para o espaço de trabalho 3"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window to workspace 4"
 | 
			
		||||
#~ msgstr "Mover a janela para o espaço de trabalho 4"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window to last workspace"
 | 
			
		||||
#~ msgstr "Mover a janela para o último espaço de trabalho"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window one workspace to the left"
 | 
			
		||||
#~ msgstr "Mover a janela um espaço de trabalho à esquerda"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window one workspace to the right"
 | 
			
		||||
#~ msgstr "Mover a janela um espaço de trabalho à direita"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window one workspace up"
 | 
			
		||||
#~ msgstr "Mover a janela um espaço de trabalho acima"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window one workspace down"
 | 
			
		||||
#~ msgstr "Mover a janela um espaço de trabalho abaixo"
 | 
			
		||||
 | 
			
		||||
# Em conformidade com a tradução do gsettings-desktop-schemas --Enrico
 | 
			
		||||
#~ msgid "Move window one monitor to the left"
 | 
			
		||||
#~ msgstr "Mover janela para o monitor da esquerda"
 | 
			
		||||
 | 
			
		||||
# Em conformidade com a tradução do gsettings-desktop-schemas --Enrico
 | 
			
		||||
#~ msgid "Move window one monitor to the right"
 | 
			
		||||
#~ msgstr "Mover janela para o monitor da direita"
 | 
			
		||||
 | 
			
		||||
# Em conformidade com a tradução do gsettings-desktop-schemas --Enrico
 | 
			
		||||
#~ msgid "Move window one monitor up"
 | 
			
		||||
#~ msgstr "Mover janela para o monitor acima"
 | 
			
		||||
 | 
			
		||||
# Em conformidade com a tradução do gsettings-desktop-schemas --Enrico
 | 
			
		||||
#~ msgid "Move window one monitor down"
 | 
			
		||||
#~ msgstr "Mover janela para o monitor abaixo"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch applications"
 | 
			
		||||
#~ msgstr "Alternar aplicativos"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch to previous application"
 | 
			
		||||
#~ msgstr "Alternar para o aplicativo anterior"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch windows"
 | 
			
		||||
#~ msgstr "Alternar janelas"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch to previous window"
 | 
			
		||||
#~ msgstr "Alternar para a janela anterior"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch windows of an application"
 | 
			
		||||
#~ msgstr "Alternar as janelas de um aplicativo"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch to previous window of an application"
 | 
			
		||||
#~ msgstr "Alternar para a janela anterior de um aplicativo"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch to previous system control"
 | 
			
		||||
#~ msgstr "Alternar para o controle de sistema anterior"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch windows directly"
 | 
			
		||||
#~ msgstr "Alternar as janelas diretamente"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch directly to previous window"
 | 
			
		||||
#~ msgstr "Alternar diretamente para a janela anterior"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch windows of an app directly"
 | 
			
		||||
#~ msgstr "Alternar as janelas de um aplicativo diretamente"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch directly to previous window of an app"
 | 
			
		||||
#~ msgstr "Alternar diretamente para a janela anterior de um aplicativo"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch system controls directly"
 | 
			
		||||
#~ msgstr "Alternar os controles de sistema diretamente"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch directly to previous system control"
 | 
			
		||||
#~ msgstr "Alternar diretamente para o controle de sistema anterior"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Hide all normal windows"
 | 
			
		||||
#~ msgstr "Ocultar todas as janelas normais"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch to workspace 1"
 | 
			
		||||
#~ msgstr "Trocar para o espaço de trabalho 1"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch to workspace 2"
 | 
			
		||||
#~ msgstr "Trocar para o espaço de trabalho 2"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch to workspace 3"
 | 
			
		||||
#~ msgstr "Trocar para o espaço de trabalho 3"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch to workspace 4"
 | 
			
		||||
#~ msgstr "Trocar para o espaço de trabalho 4"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Switch to last workspace"
 | 
			
		||||
#~ msgstr "Trocar para o último espaço de trabalho"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move to workspace left"
 | 
			
		||||
#~ msgstr "Move para o espaço de trabalho à esquerda"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move to workspace right"
 | 
			
		||||
#~ msgstr "Move para o espaço de trabalho à direita"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move to workspace above"
 | 
			
		||||
#~ msgstr "Mover para o espaço de trabalho acima"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move to workspace below"
 | 
			
		||||
#~ msgstr "Mover para o espaço de trabalho abaixo"
 | 
			
		||||
 | 
			
		||||
#~ msgid "System"
 | 
			
		||||
#~ msgstr "Sistema"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Show the run command prompt"
 | 
			
		||||
#~ msgstr "Mostrar o prompt de comando de execução"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Show the activities overview"
 | 
			
		||||
#~ msgstr "Mostrar o panorama de atividades"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Windows"
 | 
			
		||||
#~ msgstr "Janelas"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Activate the window menu"
 | 
			
		||||
#~ msgstr "Ativar o menu da janela"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Toggle fullscreen mode"
 | 
			
		||||
#~ msgstr "Alternar modo de tela inteira"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Toggle maximization state"
 | 
			
		||||
#~ msgstr "Alternar estado de maximização"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Maximize window"
 | 
			
		||||
#~ msgstr "Maximizar a janela"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Restore window"
 | 
			
		||||
#~ msgstr "Restaurar janela"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Toggle shaded state"
 | 
			
		||||
#~ msgstr "Alternar estado sombreado"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Close window"
 | 
			
		||||
#~ msgstr "Fechar janela"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Hide window"
 | 
			
		||||
#~ msgstr "Ocultar janela"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Move window"
 | 
			
		||||
#~ msgstr "Mover janela"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Resize window"
 | 
			
		||||
#~ msgstr "Redimensionar janela"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Toggle window on all workspaces or one"
 | 
			
		||||
#~ msgstr "Alternar a janela em todos os espaços de trabalho ou em apenas um"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Raise window if covered, otherwise lower it"
 | 
			
		||||
#~ msgstr "Elevar a janela se estiver coberta; caso contrário, a abaixa"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Raise window above other windows"
 | 
			
		||||
#~ msgstr "Elevar a janela para frente das outras"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Lower window below other windows"
 | 
			
		||||
#~ msgstr "Colocar a janela atrás das outras"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Maximize window vertically"
 | 
			
		||||
#~ msgstr "Maximizar a janela verticalmente"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Maximize window horizontally"
 | 
			
		||||
#~ msgstr "Maximizar a janela horizontalmente"
 | 
			
		||||
 | 
			
		||||
#~ msgid "View split on left"
 | 
			
		||||
#~ msgstr "Visualizar divisão à esquerda"
 | 
			
		||||
 | 
			
		||||
#~ msgid "View split on right"
 | 
			
		||||
#~ msgstr "Visualizar divisão à direita"
 | 
			
		||||
 | 
			
		||||
#~ msgid "background texture could not be created from file"
 | 
			
		||||
#~ msgstr "textura de plano de fundo não pôde ser criado de arquivo"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/rw.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/rw.po
									
									
									
									
									
								
							@@ -19,6 +19,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2005-03-28 19:35-0700\n"
 | 
			
		||||
"Last-Translator: Steve Murphy <murf@e-tools.com>\n"
 | 
			
		||||
"Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
 | 
			
		||||
"Language: rw\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								po/si.po
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								po/si.po
									
									
									
									
									
								
							@@ -11,6 +11,7 @@ msgstr ""
 | 
			
		||||
"PO-Revision-Date: 2007-08-17 14:12+0530\n"
 | 
			
		||||
"Last-Translator: Danishka Navin <snavin@redhat.com>\n"
 | 
			
		||||
"Language-Team: Sinhala <en@li.org>\n"
 | 
			
		||||
"Language: si\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										59
									
								
								po/sk.po
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								po/sk.po
									
									
									
									
									
								
							@@ -14,8 +14,8 @@ msgstr ""
 | 
			
		||||
"Project-Id-Version: mutter\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
 | 
			
		||||
"product=mutter&keywords=I18N+L10N&component=general\n"
 | 
			
		||||
"POT-Creation-Date: 2016-03-01 13:42+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2016-03-01 20:40+0100\n"
 | 
			
		||||
"POT-Creation-Date: 2016-07-22 13:03+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2016-08-04 15:28+0200\n"
 | 
			
		||||
"Last-Translator: Dušan Kazik <prescott66@gmail.com>\n"
 | 
			
		||||
"Language-Team: Slovak <gnome-sk-list@gnome.org>\n"
 | 
			
		||||
"Language: sk\n"
 | 
			
		||||
@@ -23,7 +23,7 @@ msgstr ""
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
 | 
			
		||||
"X-Generator: Poedit 1.8.7\n"
 | 
			
		||||
"X-Generator: Poedit 1.8.8\n"
 | 
			
		||||
 | 
			
		||||
#: ../data/50-mutter-navigation.xml.in.h:1
 | 
			
		||||
msgid "Navigation"
 | 
			
		||||
@@ -242,7 +242,7 @@ msgstr "Aktivovať ponuku okna"
 | 
			
		||||
# description
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:3
 | 
			
		||||
msgid "Toggle fullscreen mode"
 | 
			
		||||
msgstr "Prepnúť celoobrazovkový režim"
 | 
			
		||||
msgstr "Prepnúť režim na celú obrazovku"
 | 
			
		||||
 | 
			
		||||
# description
 | 
			
		||||
#: ../data/50-mutter-windows.xml.in.h:4
 | 
			
		||||
@@ -542,29 +542,39 @@ msgstr "Prepnúť na VT č. 11"
 | 
			
		||||
msgid "Switch to VT 12"
 | 
			
		||||
msgstr "Prepnúť na VT č. 12"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:518
 | 
			
		||||
# PK: predpokladam ze to prepisane medzi tlacidlami
 | 
			
		||||
# description
 | 
			
		||||
#: ../src/backends/meta-input-settings.c:1601
 | 
			
		||||
msgid "Switch monitor"
 | 
			
		||||
msgstr "Prepnúť monitor"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-input-settings.c:1603
 | 
			
		||||
msgid "Show on-screen help"
 | 
			
		||||
msgstr "Zobraziť pomocníka na obrazovke"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:515
 | 
			
		||||
msgid "Built-in display"
 | 
			
		||||
msgstr "Vstavaný displej"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:544
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:538
 | 
			
		||||
msgid "Unknown"
 | 
			
		||||
msgstr "Neznámy"
 | 
			
		||||
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:546
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:540
 | 
			
		||||
msgid "Unknown Display"
 | 
			
		||||
msgstr "Neznámy displej"
 | 
			
		||||
 | 
			
		||||
#. TRANSLATORS: this is a monitor vendor name, followed by a
 | 
			
		||||
#. * size in inches, like 'Dell 15"'
 | 
			
		||||
#.
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:554
 | 
			
		||||
#: ../src/backends/meta-monitor-manager.c:548
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s %s"
 | 
			
		||||
msgstr "%s %s"
 | 
			
		||||
 | 
			
		||||
#. This probably means that a non-WM compositor like xcompmgr is running;
 | 
			
		||||
#. * we have no way to get it to exit
 | 
			
		||||
#: ../src/compositor/compositor.c:456
 | 
			
		||||
#: ../src/compositor/compositor.c:463
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Another compositing manager is already running on screen %i on display \"%s"
 | 
			
		||||
@@ -572,7 +582,7 @@ msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Pre obrazovku č. %i na displeji „%s“ je spustený už iný správca rozloženia."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/bell.c:185
 | 
			
		||||
#: ../src/core/bell.c:194
 | 
			
		||||
msgid "Bell event"
 | 
			
		||||
msgstr "Udalosť zvončeka"
 | 
			
		||||
 | 
			
		||||
@@ -602,51 +612,51 @@ msgid "_Force Quit"
 | 
			
		||||
msgstr "_Vynútiť ukončenie"
 | 
			
		||||
 | 
			
		||||
# X window system preloz, napr. system na spravu okien X
 | 
			
		||||
#: ../src/core/display.c:555
 | 
			
		||||
#: ../src/core/display.c:590
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Failed to open X Window System display '%s'\n"
 | 
			
		||||
msgstr "Zlyhalo otvorenie displeja systému na správu okien X „%s“\n"
 | 
			
		||||
 | 
			
		||||
# cmd desc
 | 
			
		||||
#: ../src/core/main.c:181
 | 
			
		||||
#: ../src/core/main.c:182
 | 
			
		||||
msgid "Disable connection to session manager"
 | 
			
		||||
msgstr "Zakáže pripojenia k správcovi relácií"
 | 
			
		||||
 | 
			
		||||
# cmd desc
 | 
			
		||||
#: ../src/core/main.c:187
 | 
			
		||||
#: ../src/core/main.c:188
 | 
			
		||||
msgid "Replace the running window manager"
 | 
			
		||||
msgstr "Nahradí bežiaceho správcu okien"
 | 
			
		||||
 | 
			
		||||
# cmd desc
 | 
			
		||||
#: ../src/core/main.c:193
 | 
			
		||||
#: ../src/core/main.c:194
 | 
			
		||||
msgid "Specify session management ID"
 | 
			
		||||
msgstr "Zadá identifikátor správy relácií"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:198
 | 
			
		||||
#: ../src/core/main.c:199
 | 
			
		||||
msgid "X Display to use"
 | 
			
		||||
msgstr "X displej, ktorý bude použitý"
 | 
			
		||||
 | 
			
		||||
# cmd desc
 | 
			
		||||
#: ../src/core/main.c:204
 | 
			
		||||
#: ../src/core/main.c:205
 | 
			
		||||
msgid "Initialize session from savefile"
 | 
			
		||||
msgstr "Inicializuje reláciu z uloženého súboru"
 | 
			
		||||
 | 
			
		||||
# cmd desc
 | 
			
		||||
#: ../src/core/main.c:210
 | 
			
		||||
#: ../src/core/main.c:211
 | 
			
		||||
msgid "Make X calls synchronous"
 | 
			
		||||
msgstr "Použije synchrónne volania X"
 | 
			
		||||
 | 
			
		||||
# cmd desc
 | 
			
		||||
#: ../src/core/main.c:217
 | 
			
		||||
#: ../src/core/main.c:218
 | 
			
		||||
msgid "Run as a wayland compositor"
 | 
			
		||||
msgstr "Spustí ako kompozitor protokolu wayland"
 | 
			
		||||
 | 
			
		||||
# cmd desc
 | 
			
		||||
#: ../src/core/main.c:223
 | 
			
		||||
#: ../src/core/main.c:224
 | 
			
		||||
msgid "Run as a nested compositor"
 | 
			
		||||
msgstr "Spustí ako kompozitor s vnoreným režimom"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:231
 | 
			
		||||
#: ../src/core/main.c:232
 | 
			
		||||
msgid "Run as a full display server, rather than nested"
 | 
			
		||||
msgstr "Spustí ako plnohodnotný zobrazovací server, namiesto vnoreného režimu"
 | 
			
		||||
 | 
			
		||||
@@ -694,10 +704,15 @@ msgstr ""
 | 
			
		||||
msgid "Screen %d on display '%s' is invalid\n"
 | 
			
		||||
msgstr "Obrazovka č. %d na displeji „%s“ nie je platná\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/util.c:121
 | 
			
		||||
#: ../src/core/util.c:120
 | 
			
		||||
msgid "Mutter was compiled without support for verbose mode\n"
 | 
			
		||||
msgstr "Mutter bol skompilovaný bez výpisu podrobností pri behu\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/wayland/meta-wayland-tablet-pad.c:595
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Mode Switch: Mode %d"
 | 
			
		||||
msgstr "Prepínač režimu: Režim č. %d"
 | 
			
		||||
 | 
			
		||||
#: ../src/x11/session.c:1815
 | 
			
		||||
msgid ""
 | 
			
		||||
"These windows do not support "save current setup" and will have to "
 | 
			
		||||
@@ -707,7 +722,7 @@ msgstr ""
 | 
			
		||||
"prihlásení ich budete musieť znovu spustiť ručne."
 | 
			
		||||
 | 
			
		||||
# window title; wm_client_machine
 | 
			
		||||
#: ../src/x11/window-props.c:549
 | 
			
		||||
#: ../src/x11/window-props.c:548
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "%s (on %s)"
 | 
			
		||||
msgstr "%s (na %s)"
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user