Like the Title says I will like to know how does ALT + LeftClick signal are handled in GTK applications.
At this point lets say I have the following program:
#include <gtk/gtk.h>
#define EVENTS ( GDK_BUTTON_PRESS_MASK | GDK_KEY_PRESS_MASK )
gboolean button_pressed_callback ( GtkWindow *window, GdkEventButton *event );
gboolean alt_plus_key_callback ( GtkWindow *window, GdkEventKey *event );
int main ( void )
{
GtkWidget *window;
/// ***
gtk_init ( NULL, NULL );
/// *** Create a Window
window = gtk_window_new ( GTK_WINDOW_TOPLEVEL );
gtk_widget_add_events ( window, ( gtk_widget_get_events ( window ) | EVENTS ) );
/// *** Catch the Signals
g_signal_connect_swapped ( window, "button-press-event", G_CALLBACK ( button_pressed_callback ), window );
g_signal_connect_swapped ( window, "key-press-event", G_CALLBACK ( alt_plus_key_callback ), window );
/// ***
gtk_widget_show_all ( window );
gtk_main ();
}
gboolean alt_plus_key_callback ( GtkWindow *window, GdkEventKey *event )
{
if ( GTK_IS_WINDOW ( window ) )
{
GdkModifierType modifiers = gtk_accelerator_get_default_mod_mask ();
if ( ( event->state & modifiers ) == GDK_MOD1_MASK )
{
g_print ( "ALT + a KEY was pressed\n" );
return TRUE;
}
}
return FALSE;
}
gboolean button_pressed_callback ( GtkWindow *window, GdkEventButton *event )
{
if ( GTK_IS_WINDOW ( window ) )
{
if ( event->type == GDK_BUTTON_PRESS )
{
switch ( event->button )
{
case 1:
g_print ( "Left-Click button was pressed\n" );
break;
default:
break;
}
}
return FALSE;
}
return TRUE;
}
Here if one use its mouse left click or press the ALT + SOME_KEY the following Output will come:
Left-Click button was pressed
Left-Click button was pressed
ALT + a KEY was pressed
ALT + a KEY was pressed
The Question is, how can I catch both ALT + BUTTON1 (Mouse Left Click) in GTK3?
GTK3,Linux Mint 19.2, GCC-8