Re: Some Dead Keys not supported

2015-08-20 Thread Alexander Roalter

On 17.08.2015 01:28, Alexander Roalter wrote:

I’m not sure this is the correct place to report this, but I have the
following issue with keyboard input in GTK (and this extends to almost
my entire Linux).

Recently, I installed the german T3 keyboard, which has amongst many
special characters also some additional dead keys, namely for the comma
below and the stroke. Comma below is used for typing Romanian (ș≠ş,
ț≠ţ), the stroke is used for (ħ, ŧ, used in Maltese).

In xterm and basic X programs, this works as expected, but in GTK
applications, this dead key is simply ignored, so I get an s instead of ș.

There is a definition for the Windows keyboard that also implements the
T3 keyboard (or rather a subset of it, the T2 keyboard), which uses a
special dead key sequence for giving access to Level 5-8 of the keyboard
(under Linux, this is done by pressing AltGr+Shift, so no deadkey needed
there). Windows-GTK-programs have the same issue. the deadkeys stroke,
comma below and this special dead key sequence are ignored (and other
keyboard layouts which also use differing keyboard mappings, such as the
german NEO layout have similar problems)

What I gathered is that GTK brings its very own keyboard stroke to
character engine, and apparently simply ignores the dead key sequences
it doesn't know about.

Is this assumption correct? And is there anything one can do to either
let X11 do its thing or have GTK learn about the other deadkey
sequences? (the latter one would help with my Windows-GTK-Problems at
Work, since thatʹs the only place I have Windows running)


I guess it’s a follow up for

https://mail.gnome.org/archives/commits-list/2014-September/msg03726.html

At home, my olderish gtk doesn’t show it, but xterm does. At work, at a 
brand new ubuntu 14, neither gtk nor xterm do work (xev still shows the 
dead_belowcomma) being generated.



--
Cheers,
Alex

--
Cheers,
Alex
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list


Some Dead Keys not supported

2015-08-16 Thread Alexander Roalter
I’m not sure this is the correct place to report this, but I have the 
following issue with keyboard input in GTK (and this extends to almost 
my entire Linux).


Recently, I installed the german T3 keyboard, which has amongst many 
special characters also some additional dead keys, namely for the comma 
below and the stroke. Comma below is used for typing Romanian (ș≠ş, 
ț≠ţ), the stroke is used for (ħ, ŧ, used in Maltese).


In xterm and basic X programs, this works as expected, but in GTK 
applications, this dead key is simply ignored, so I get an s instead of ș.


There is a definition for the Windows keyboard that also implements the 
T3 keyboard (or rather a subset of it, the T2 keyboard), which uses a 
special dead key sequence for giving access to Level 5-8 of the keyboard 
(under Linux, this is done by pressing AltGr+Shift, so no deadkey needed 
there). Windows-GTK-programs have the same issue. the deadkeys stroke, 
comma below and this special dead key sequence are ignored (and other 
keyboard layouts which also use differing keyboard mappings, such as the 
german NEO layout have similar problems)


What I gathered is that GTK brings its very own keyboard stroke to 
character engine, and apparently simply ignores the dead key sequences 
it doesn't know about.


Is this assumption correct? And is there anything one can do to either 
let X11 do its thing or have GTK learn about the other deadkey 
sequences? (the latter one would help with my Windows-GTK-Problems at 
Work, since thatʹs the only place I have Windows running)


--
Cheers,
Alex
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: [Bug 602733] Extended Input with Xinerama

2010-01-20 Thread Alexander Roalter
On 11/25/2009 10:40 PM, gtk+ (bugzilla.gnome.org) wrote:
 https://bugzilla.gnome.org/show_bug.cgi?id=602733
   gtk+ | gdk | unspecified
 
 Matthias Clasen mclasen changed:
 
What|Removed |Added
 
  CC||mcla...@redhat.com
 
 --- Comment #1 from Matthias Clasen mcla...@redhat.com 2009-11-25 21:40:52 
 UTC ---
 This will have to be redone against the xi2 branch which we are going to merge
 sometime soon. But I am dubious about the claims here. 
 
   [...] still behaves as if the tablet weren't
   restricted to only a single screen, even though the normal cursor knows
 better
   and stays at the same screen.
 
 What is restricting the 'normal cursor' to a single screen here ? And is the
 'normal cursor' the core pointer, or the tablet ?
 
 Finally, is your setup really two screens, or is it to monitors that form a
 single screen ?
 
Once again I submit the patch for a working tablet (extended input
support) with GTK (e.g. in Inkscape and GIMP) when using Xinerama and
Screen Mode for the Input device.

Patch was made with git diff  xinerama.diff, if there's something wrong
with that please let me know

-- 
Cheers,
Alex
diff --git a/gdk/x11/gdkinput-x11.c b/gdk/x11/gdkinput-x11.c
index 767b070..77f1ef0 100644
--- a/gdk/x11/gdkinput-x11.c
+++ b/gdk/x11/gdkinput-x11.c
@@ -454,11 +454,18 @@ gdk_input_translate_coordinates (GdkDevicePrivate *gdkdev,
 
   if (gdkdev-info.mode == GDK_MODE_SCREEN)
 {
-  x_scale = gdk_screen_get_width (gdk_drawable_get_screen (window)) / device_width;
-  y_scale = gdk_screen_get_height (gdk_drawable_get_screen (window)) / device_height;
-
-  x_offset = - impl_window-input_window-root_x - priv-abs_x;
-  y_offset = - impl_window-input_window-root_y - priv-abs_y;
+  int core_pointer_x, core_pointer_y, cur_monitor;
+  GdkRectangle mon_geometry;
+  GdkScreen *cur_screen;
+  gdk_display_get_pointer (gdk_drawable_get_display (window), cur_screen, core_pointer_x, core_pointer_y, 0);
+  cur_monitor = gdk_screen_get_monitor_at_point (cur_screen, core_pointer_x, core_pointer_y);
+
+  gdk_screen_get_monitor_geometry (cur_screen, cur_monitor, mon_geometry);
+  x_scale = mon_geometry.width / device_width;
+  y_scale = mon_geometry.height / device_height;
+
+  x_offset = - impl_window-input_window-root_x - priv-abs_x + mon_geometry.x;
+  y_offset = - impl_window-input_window-root_y - priv-abs_y + mon_geometry.y;
 }
   else/* GDK_MODE_WINDOW */
 {
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Xinerama-Setup and Extended Input devices (Screen Mode)

2009-11-21 Thread Alexander Roalter
When I use Screen Mode with my Wacom Tablet, Inkscape and GIMP (both
using the gtk xinput) show the following behavior: since I limit the
Tablet to only one screen (1680x1050), but my entire desktop spans over
three screens (1680+1680+1920x1080), if I draw a circle, on the canvas
of Gimp I see an ellipse which is approximately three times as wide as
it is high.

this means, that in screen mode the coordinates are the data from the
tablet (in the 16000x12000 range) converted to the entire screen
(5280x1080) instead of that of the current screen.

I therefore made the following change, which takes into account the
current screen's size, and at least for me now everything works as it
should: a circle on the tablet becomes a circle on the canvas.

Mind you, this happens only in screen mode (but that's apart from Window
mode the only mode where pressure sensitivity works).


-- 
Cheers,
Alex
diff --git a/gdk/x11/gdkinput-x11.c b/gdk/x11/gdkinput-x11.c
index a793a42..355963e 100644
--- a/gdk/x11/gdkinput-x11.c
+++ b/gdk/x11/gdkinput-x11.c
@@ -454,8 +454,15 @@ gdk_input_translate_coordinates (GdkDevicePrivate *gdkdev,
 
   if (gdkdev-info.mode == GDK_MODE_SCREEN)
 {
-  x_scale = gdk_screen_get_width (gdk_drawable_get_screen (window)) / device_width;
-  y_scale = gdk_screen_get_height (gdk_drawable_get_screen (window)) / device_height;
+  int core_pointer_x, core_pointer_y, cur_monitor;
+  GdkRectangle mon_geometry;
+  GdkScreen *cur_screen;
+  gdk_display_get_pointer(gdk_drawable_get_display(window),cur_screen,core_pointer_x,core_pointer_y,0);
+  cur_monitor = gdk_screen_get_monitor_at_point(cur_screen, core_pointer_x, core_pointer_y);
+
+  gdk_screen_get_monitor_geometry(cur_screen,cur_monitor,mon_geometry);
+  x_scale = mon_geometry.width / device_width;
+  y_scale = mon_geometry.height / device_height;
 
   x_offset = - impl_window-input_window-root_x - priv-abs_x;
   y_offset = - impl_window-input_window-root_y - priv-abs_y;
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list