Home » Developing U++ » U++ Developers corner » Using Pen with U++
Re: Using Pen with U++ [message #56921 is a reply to message #56919] |
Fri, 30 April 2021 17:08 |
Tom1
Messages: 1212 Registered: March 2007
|
Senior Contributor |
|
|
Mirek,
This might only apply after release 2021.1, but I found a solution for history -- or rather the backlog of mouse events:
In GtkCreate.cpp on line 44 we should have:
gtk_widget_set_events(top->window, GDK_ALL_EVENTS_MASK & ~GDK_POINTER_MOTION_HINT_MASK);
This drops the deprecated event mask for reducing the number of GDK_MOTION_NOTIFY events.
Additionally in GtkEvent.cpp we need:
...
static Point s_mousepos;
Point Ctrl::GetMouseInfo(GdkWindow *win, GdkModifierType& mod)
{
#if GTK_CHECK_VERSION(3, 20, 0)
GdkDisplay *display = gdk_window_get_display (win);
GdkDevice *pointer = gdk_seat_get_pointer (gdk_display_get_default_seat (display));
double x, y;
gdk_window_get_device_position_double (win, pointer, &x, &y, &mod);
return s_mousepos; //return Point((int)SCL(x), (int)SCL(y));
#else
gint x, y;
gdk_window_get_pointer(win, &x, &y, &mod);
return Point(SCL(x), SCL(y));
#endif
}
void Ctrl::AddEvent(gpointer user_data, int type, const Value& value, GdkEvent *event)
{
if(Events.GetCount() > 50000)
return;
GEvent& e = Events.AddTail();
e.windowid = (uint32)(uintptr_t)user_data;
e.type = type;
e.value = value;
GdkModifierType mod;
e.mousepos = GetMouseInfo(gdk_get_default_root_window(), mod);
if(event->type == GDK_MOTION_NOTIFY){
GdkEventMotion *mevent = (GdkEventMotion *)event;
e.mousepos = s_mousepos = Point(SCL(mevent->x_root), SCL(mevent->y_root));
}
e.state = (mod & ~(GDK_BUTTON1_MASK|GDK_BUTTON2_MASK|GDK_BUTTON3_MASK)) | MouseState;
e.count = 1;
e.event = NULL;
#if GTK_CHECK_VERSION(3, 22, 0)
GdkDevice *d = gdk_event_get_source_device(event);
int s=d?gdk_device_get_source(d):0;
if(d && ((s==GDK_SOURCE_PEN) || (s==GDK_SOURCE_TOUCHSCREEN))) {
e.pen = true;
e.pen_barrel = MouseState & GDK_BUTTON3_MASK;
double *axes = NULL;
switch(event->type){
case GDK_BUTTON_PRESS:
gdk_window_set_event_compression(((GdkEventButton *)event)->window, false);
case GDK_2BUTTON_PRESS:
case GDK_3BUTTON_PRESS:
axes = ((GdkEventButton *)event)->axes;
break;
case GDK_BUTTON_RELEASE:
gdk_window_set_event_compression(((GdkEventButton *)event)->window, true);
axes = ((GdkEventButton *)event)->axes;
break;
case GDK_MOTION_NOTIFY:{
GdkEventMotion *mevent = (GdkEventMotion *)event;
e.mousepos = s_mousepos = Point(SCL(mevent->x_root), SCL(mevent->y_root));
axes = ((GdkEventMotion *)event)->axes;
break;
}
}
if(axes) {
if(!gdk_device_get_axis(d, axes, GDK_AXIS_PRESSURE, &e.pen_pressure)) e.pen_pressure=Null;
if(!gdk_device_get_axis(d, axes, GDK_AXIS_ROTATION, &e.pen_rotation)) e.pen_rotation=Null;
if(!gdk_device_get_axis(d, axes, GDK_AXIS_XTILT, &e.pen_tilt.x)) e.pen_tilt.x=Null;
if(!gdk_device_get_axis(d, axes, GDK_AXIS_YTILT, &e.pen_tilt.y)) e.pen_tilt.y=Null;
}
}
#endif
...
And finally also in GtkEvent.cpp:
...
bool Ctrl::ProcessEvent0(bool *quit, bool fetch)
{
ASSERT(IsMainThread());
bool r = false;
if(IsWaitingEvent0(fetch)) {
while(Events.GetCount() > 1) { // GEvent compression (coalesce autorepeat, mouse moves/wheel, configure)
GEvent& a = Events[0];
GEvent& b = Events[1];
if(b.type == a.type && a.windowid == b.windowid && a.state == b.state) {
if(a.type == GDK_KEY_PRESS && a.value == b.value)
b.count += a.count;
else
if(a.type == GDK_SCROLL)
b.value = (int)b.value + (int)a.value;
else
// if(findarg(a.type, GDK_MOTION_NOTIFY, GDK_CONFIGURE) < 0)
if(findarg(a.type, GDK_CONFIGURE) < 0) // *** HERE: We cannot drop GDK_MOTION_NOTIFY events
break;
Events.DropHead();
...
This last one dropped queued GDK_MOTION_NOTIFY events and ruined all attempts to get them through.
However, performance questions may need further considerations... It works here in virtual machine quite well on both Ubuntu 2021.4 and Linux Mint 20.1, but hardware varies of course.
Best regards,
Tom
|
|
|
|
|
Using Pen with U++
By: Tom1 on Wed, 03 March 2021 16:13
|
|
|
Re: Using Pen with U++
By: mirek on Wed, 03 March 2021 17:06
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 03 March 2021 20:40
|
|
|
Re: Using Pen with U++
By: mirek on Tue, 09 March 2021 12:04
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 09 March 2021 13:10
|
|
|
Re: Using Pen with U++
By: mirek on Tue, 09 March 2021 13:27
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 09 March 2021 13:41
|
|
|
Re: Using Pen with U++
By: mirek on Tue, 09 March 2021 13:47
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 09 March 2021 13:59
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 09 March 2021 14:18
|
|
|
Re: Using Pen with U++
By: mirek on Tue, 09 March 2021 14:37
|
|
|
Re: Using Pen with U++
By: mirek on Tue, 09 March 2021 14:39
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 09 March 2021 15:07
|
|
|
Re: Using Pen with U++
By: mirek on Tue, 09 March 2021 15:59
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 09 March 2021 16:56
|
|
|
Re: Using Pen with U++
By: mirek on Tue, 09 March 2021 17:48
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 09 March 2021 18:14
|
|
|
Re: Using Pen with U++
By: mirek on Thu, 11 March 2021 11:21
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 11 March 2021 11:53
|
|
|
Re: Using Pen with U++
By: mirek on Thu, 11 March 2021 14:16
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 11 March 2021 14:41
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 11 March 2021 14:54
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 11 March 2021 16:26
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 12 March 2021 09:37
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 12 March 2021 09:52
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 12 March 2021 10:18
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 12 March 2021 10:28
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 12 March 2021 11:56
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 12 March 2021 12:35
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 12 March 2021 17:50
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 12 March 2021 18:32
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 12 March 2021 19:04
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 12 March 2021 20:27
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 13 March 2021 12:42
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 13 March 2021 14:19
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 13 March 2021 14:39
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 13 March 2021 15:07
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 13 March 2021 15:20
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 13 March 2021 18:02
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 13 March 2021 19:18
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 13 March 2021 20:54
|
|
|
Re: Using Pen with U++
By: mirek on Sun, 14 March 2021 00:05
|
|
|
Re: Using Pen with U++
By: Tom1 on Sun, 14 March 2021 12:14
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 17 March 2021 09:59
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 19 March 2021 09:09
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 19 March 2021 12:57
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 19 March 2021 16:02
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 20 March 2021 11:25
|
|
|
Re: Using Pen with U++
By: Tom1 on Sun, 21 March 2021 12:29
|
|
|
Re: Using Pen with U++
By: mirek on Mon, 22 March 2021 00:39
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 22 March 2021 08:46
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 22 March 2021 10:35
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 22 March 2021 16:17
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 23 March 2021 13:36
|
|
|
Re: Using Pen with U++
By: mirek on Wed, 24 March 2021 11:35
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 24 March 2021 11:57
|
|
|
Re: Using Pen with U++
By: mirek on Wed, 24 March 2021 13:31
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 24 March 2021 15:21
|
|
|
Re: Using Pen with U++
By: mirek on Wed, 24 March 2021 15:56
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 24 March 2021 16:51
|
|
|
Re: Using Pen with U++
By: mirek on Wed, 24 March 2021 18:01
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 24 March 2021 18:22
|
|
|
Re: Using Pen with U++
By: mirek on Thu, 25 March 2021 19:58
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 25 March 2021 20:47
|
|
|
Re: Using Pen with U++
By: mirek on Thu, 25 March 2021 22:07
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 25 March 2021 22:33
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 26 March 2021 00:22
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 25 March 2021 22:28
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 26 March 2021 08:57
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 26 March 2021 10:15
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 26 March 2021 12:42
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 26 March 2021 13:39
|
|
|
Re: Using Pen with U++
By: Novo on Fri, 26 March 2021 15:05
|
|
|
Re: Using Pen with U++
By: Novo on Fri, 26 March 2021 15:08
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 26 March 2021 15:45
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 26 March 2021 16:44
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 26 March 2021 18:19
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 26 March 2021 18:52
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 27 March 2021 09:11
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 27 March 2021 12:20
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 27 March 2021 20:23
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 27 March 2021 20:45
|
|
|
Re: Using Pen with U++
By: mirek on Sun, 28 March 2021 13:15
|
|
|
Re: Using Pen with U++
By: Tom1 on Sun, 28 March 2021 18:11
|
|
|
Re: Using Pen with U++
By: mirek on Mon, 29 March 2021 11:10
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 29 March 2021 12:33
|
|
|
Re: Using Pen with U++
By: mirek on Mon, 29 March 2021 13:57
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 29 March 2021 14:36
|
|
|
Re: Using Pen with U++
By: mirek on Mon, 29 March 2021 15:35
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 29 March 2021 15:50
|
|
|
Re: Using Pen with U++
By: mirek on Mon, 29 March 2021 16:01
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 29 March 2021 16:20
|
|
|
Re: Using Pen with U++
By: mirek on Mon, 29 March 2021 16:54
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 29 March 2021 17:04
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 29 March 2021 17:18
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 29 March 2021 17:29
|
|
|
Re: Using Pen with U++
By: mirek on Mon, 29 March 2021 18:17
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 29 March 2021 20:41
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 29 March 2021 22:02
|
|
|
Re: Using Pen with U++
By: mirek on Tue, 30 March 2021 11:21
|
|
|
Re: Using Pen with U++
By: mirek on Tue, 30 March 2021 11:26
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 30 March 2021 11:36
|
|
|
Re: Using Pen with U++
By: mirek on Tue, 30 March 2021 12:00
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 30 March 2021 12:44
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 30 March 2021 15:26
|
|
|
Re: Using Pen with U++
By: Novo on Tue, 30 March 2021 23:34
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 31 March 2021 10:37
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 31 March 2021 13:14
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 31 March 2021 13:46
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 31 March 2021 15:03
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 01 April 2021 13:53
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 01 April 2021 16:22
|
|
|
Re: Using Pen with U++
By: mirek on Thu, 01 April 2021 17:29
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 01 April 2021 18:01
|
|
|
Re: Using Pen with U++
By: mirek on Thu, 01 April 2021 22:46
|
|
|
Re: Using Pen with U++
By: mirek on Thu, 01 April 2021 22:49
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 02 April 2021 08:26
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 02 April 2021 10:05
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 02 April 2021 11:43
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 02 April 2021 12:30
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 02 April 2021 21:27
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 03 April 2021 08:44
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 03 April 2021 08:52
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 03 April 2021 08:57
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 03 April 2021 10:37
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 03 April 2021 11:14
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 03 April 2021 11:37
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 03 April 2021 15:52
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 03 April 2021 16:02
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 03 April 2021 16:05
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 03 April 2021 16:17
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 03 April 2021 17:28
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 03 April 2021 22:57
|
|
|
Re: Using Pen with U++
By: mirek on Sun, 04 April 2021 18:55
|
|
|
Re: Using Pen with U++
By: Tom1 on Sun, 04 April 2021 20:35
|
|
|
Re: Using Pen with U++
By: mirek on Sun, 04 April 2021 20:42
|
|
|
Re: Using Pen with U++
By: Tom1 on Sun, 04 April 2021 22:02
|
|
|
Re: Using Pen with U++
By: mirek on Sun, 04 April 2021 23:15
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 05 April 2021 12:33
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 05 April 2021 12:59
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 07 April 2021 11:04
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 07 April 2021 12:00
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 08 April 2021 17:36
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 09 April 2021 09:18
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 09 April 2021 10:00
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 09 April 2021 10:24
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 09 April 2021 17:25
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 09 April 2021 20:15
|
|
|
Re: Using Pen with U++
By: mirek on Mon, 12 April 2021 00:27
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 12 April 2021 09:10
|
|
|
Re: Using Pen with U++
By: mirek on Sun, 25 April 2021 23:20
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 26 April 2021 15:55
|
|
|
Re: Using Pen with U++
By: mirek on Mon, 26 April 2021 16:06
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 26 April 2021 16:33
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 26 April 2021 17:13
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 28 April 2021 12:00
|
|
|
Re: Using Pen with U++
By: mirek on Wed, 28 April 2021 15:42
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 28 April 2021 16:39
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 30 April 2021 07:32
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 30 April 2021 11:08
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 30 April 2021 17:08
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 01 May 2021 10:19
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 01 May 2021 10:16
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 01 May 2021 16:56
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 01 May 2021 17:57
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 01 May 2021 22:56
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 03 May 2021 09:18
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 14 May 2021 09:04
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 13 March 2021 21:09
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 13 March 2021 15:10
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 12 March 2021 10:26
|
|
|
Re: Using Pen with U++
By: mirek on Wed, 02 June 2021 10:53
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 02 June 2021 11:28
|
|
|
Re: Using Pen with U++
By: mirek on Wed, 02 June 2021 11:38
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 02 June 2021 11:40
|
|
|
Re: Using Pen with U++
By: mirek on Wed, 02 June 2021 11:45
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 02 June 2021 12:00
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 02 June 2021 12:50
|
|
|
Re: Using Pen with U++
By: mirek on Thu, 03 June 2021 10:05
|
|
|
Re: Using Pen with U++
By: mirek on Thu, 03 June 2021 10:16
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 03 June 2021 10:33
|
|
|
Re: Using Pen with U++
By: mirek on Thu, 03 June 2021 11:26
|
Goto Forum:
Current Time: Sat May 11 08:52:38 CEST 2024
Total time taken to generate the page: 0.02015 seconds
|