[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: TextBox does not trigger KeyPress event with gtk3


On Wed, 29 May 2024 at 14:41, Benoît Minisini <
benoit.minisini@xxxxxxxxxxxxxxxx> wrote:

> Le 26/05/2024 à 15:21, Bruce Steers a écrit :
> > The following code...
> >
> > Public Sub TextBox1_KeyPress()
> >
> >    Debug Key.Text
> >    If Key.Text Not Like "[0-9]" Then Stop Event
> >
> > End
> >
> > With qt5 if i press text keys the key is printed in the debugger and the
> > textbox inputs nothing,
> > and if i press numerical keys they are printed and entered into textbox,
> > as expected.
> >
> > gtk3 on the other hand does not fire the TextBox_Keypress event at all.
> > all keys are entered into the textbox and the debugger prints nothing.
> >
> > So the statement on the wiki,,
> > https://gambaswiki.org/wiki/comp/gb.qt4/control/.keypress
> > <https://gambaswiki.org/wiki/comp/gb.qt4/control/.keypress>
> >
> >
> >       Event Cancellation
> >
> > If you stop the event with STOP EVENT
> > <https://gambaswiki.org/edit/lang/stopevent>, the control won't see the
> > keyboard event at all.
> >
> > Is only actually true for qt not gtk3
> >
> > Respects
> > BruceS
>
> Can I have a project that shows the bug? Can you send me your full
> environment with it?
>
> Thanks.
>
> --
> Benoît Minisini.
>

Well a good example is your own FTestMaskBox.class of comp/gb.form

the MaskBox test form (with QT5) does nothing if you press letter keys but
inputs a number at cursor position if you press a number key.
that i think is the expected behavior of the test code.

With GTK3 it just sends the cursor far-left and inputs nothing regardless
of pressing either text or number keys.
I think this is because the KeyPress event does not trigger with GTK but
the Change event does. so the test program does not function as expected.

Respects
BruceS

My info.....
[System]
Gambas=3.19.90 9c814d17b (bruces-patched)
OperatingSystem=Linux
Distribution=Linux Mint 21.3 (Virginia)
Kernel=6.5.0-35-generic
Architecture=x86_64
Cores=4
Memory=7852M
Language=en_GB.UTF-8
Platform=x11
Desktop=MATE
DesktopResolution=96
DesktopScale=8
WidgetTheme=thinice
Font=Ubuntu,11
[Programs]
dpkg=Debian 'dpkg' package management program version 1.21.1 (amd64).
gcc=gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
git=git version 2.34.1
msgmerge=msgmerge (GNU gettext-tools) 0.21
[Libraries]
Cairo=libcairo.so.2.11600.0
Curl=libcurl.so.4.7.0
DBus=libdbus-1.so.3.19.13
GDK2=libgdk-x11-2.0.so.0.2400.33
GDK3=libgdk-3.so.0.2404.29
GStreamer=libgstreamer-1.0.so.0.2003.0
GTK+2=libgtk-x11-2.0.so.0.2400.33
GTK+3=libgtk-3.so.0.2404.29
OpenGL=libGL.so.1.7.0
Poppler=libpoppler.so.118.0.0
QT5=libQt5Core.so.5.15.3
RSvg=librsvg-2.so.2.48.0
SDL=libSDL2-2.0.so.0.18.2
SQLite3=libsqlite3.so.0.8.6
[Environment]
CLUTTER_BACKEND=x11
CLUTTER_IM_MODULE=ibus
COMPIZ_CONFIG_PROFILE=mint
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
DESKTOP_SESSION=mate
DISPLAY=:0
EDITOR=pluma
GB_GUI=gb.gtk3
GDMSESSION=mate
GDM_LANG=en_GB
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
GTK3_MODULES=xapp-gtk3-module
GTK_IM_MODULE=ibus
GTK_MODULES=gail:atk-bridge
GTK_OVERLAY_SCROLLING=0
HOME=<home>
LANG=en_GB.UTF-8
LANGUAGE=en_GB.UTF-8
LC_ADDRESS=en_GB.UTF-8
LC_ALL=en_GB.UTF-8
LC_IDENTIFICATION=en_GB.UTF-8
LC_MEASUREMENT=en_GB.UTF-8
LC_MONETARY=en_GB.UTF-8
LC_NAME=en_GB.UTF-8
LC_NUMERIC=en_GB.UTF-8
LC_PAPER=en_GB.UTF-8
LC_TELEPHONE=en_GB.UTF-8
LC_TIME=en_GB.UTF-8
LOGNAME=<user>
MATE_DESKTOP_SESSION_ID=this-is-deprecated
PATH=<home>/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
PWD=<home>
QT_ACCESSIBILITY=1
QT_FONT_DPI=96
QT_IM_MODULE=ibus
QT_LOGGING_RULES=*.debug=false
QT_QPA_PLATFORMTHEME=qt5ct
QT_SCALE_FACTOR=1
SESSION_MANAGER=local/<hostname>:@/tmp/.ICE-unix/1573,unix/<hostname>:/tmp/.ICE-unix/1573
SHELL=/bin/bash
SHLVL=1
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
TZ=:/etc/localtime
USER=<user>
XAUTHORITY=<home>/.Xauthority
XDG_CONFIG_DIRS=/etc/xdg/xdg-mate:/etc/xdg
XDG_CURRENT_DESKTOP=MATE
XDG_DATA_DIRS=/usr/share/mate:/usr/share/mate:/usr/share/gnome:<home>/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/<user>
XDG_RUNTIME_DIR=/run/user/1000
XDG_SEAT=seat0
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_CLASS=user
XDG_SESSION_DESKTOP=mate
XDG_SESSION_ID=c1
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
XDG_SESSION_TYPE=x11
XDG_VTNR=7
XMODIFIERS=@im=ibus
_=/usr/bin/gambas3

Follow-Ups:
Re: TextBox does not trigger KeyPress event with gtk3Benoît Minisini <benoit.minisini@xxxxxxxxxxxxxxxx>
References:
TextBox does not trigger KeyPress event with gtk3Bruce Steers <bsteers4@xxxxxxxxx>
Re: TextBox does not trigger KeyPress event with gtk3Benoît Minisini <benoit.minisini@xxxxxxxxxxxxxxxx>