added escape key event
This commit is contained in:
@@ -35,6 +35,7 @@
|
||||
|
||||
#include <gst/video/videooverlay.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <gdk/gdkkeysyms.h>
|
||||
|
||||
#ifdef GDK_WINDOWING_X11
|
||||
#include <gdk/gdkx.h> // for GDK_WINDOW_XID
|
||||
@@ -171,7 +172,7 @@ void configure_callback(GtkWindow *window, GdkEvent *event, gpointer data) {
|
||||
}
|
||||
|
||||
|
||||
static bool click_callback(GtkWindow *window, GdkEventButton *event, gpointer data) {
|
||||
static gboolean click_callback(GtkWindow *window, GdkEventButton *event, gpointer data) {
|
||||
|
||||
|
||||
if (event->button == 1 && event->type == GDK_2BUTTON_PRESS) {
|
||||
@@ -185,9 +186,16 @@ static bool click_callback(GtkWindow *window, GdkEventButton *event, gpointer da
|
||||
GTK_data->is_fullscreen = true;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
static gboolean on_key_press (GtkWidget *widget, GdkEventKey *event, gpointer user_data) {
|
||||
|
||||
if(event->keyval == GDK_KEY_Escape && GTK_data->is_fullscreen) {
|
||||
gtk_window_unfullscreen((GtkWindow*)GTK_data->app_window);
|
||||
GTK_data->is_fullscreen = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -262,6 +270,7 @@ int main(int argc, char *argv[]) {
|
||||
gtk_widget_realize (GTK_data->app_window);
|
||||
g_signal_connect (G_OBJECT (GTK_data->video_window), "draw",G_CALLBACK (draw_callback), NULL);
|
||||
g_signal_connect (G_OBJECT (GTK_data->app_window), "button-press-event" ,G_CALLBACK (click_callback), NULL);
|
||||
g_signal_connect (G_OBJECT (GTK_data->app_window), "key_press_event", G_CALLBACK (on_key_press), NULL);
|
||||
g_signal_connect(G_OBJECT(GTK_data->app_window), "configure-event", G_CALLBACK(configure_callback), NULL);
|
||||
|
||||
GTK_data->video_window_xwindow = gtk_widget_get_window (GTK_data->video_window);
|
||||
|
||||
Reference in New Issue
Block a user