void FullscreenVideoControllerGtk::hideHud() { if (m_hudTimeoutId) { g_source_remove(m_hudTimeoutId); m_hudTimeoutId = 0; } if (!m_hudWindow) return; // Keep the hud visible if a seek is in progress or if the volume // popup is visible. GtkWidget* volumePopup = gtk_scale_button_get_popup(GTK_SCALE_BUTTON(m_volumeButton)); if (m_seekLock || gtk_widget_get_visible(volumePopup)) { showHud(true); return; } GdkWindow* window = gtk_widget_get_window(m_window); GRefPtr<GdkCursor> cursor = adoptGRef(gdk_cursor_new(GDK_BLANK_CURSOR)); gdk_window_set_cursor(window, cursor.get()); gtk_widget_hide(m_hudWindow); if (m_progressBarUpdateId) { g_source_remove(m_progressBarUpdateId); m_progressBarUpdateId = 0; } }
static GtkBox * gtk_scale_button_get_box(GtkScaleButton *button) { GtkWidget *box = NULL; if (auto dock = gtk_scale_button_get_popup(button)) { // the dock is a popover which contains the box box = gtk_bin_get_child(GTK_BIN(dock)); if (box) { if (GTK_IS_FRAME(box)) { // support older versions of gtk; the box used to be in a frame box = gtk_bin_get_child(GTK_BIN(box)); } } } return GTK_BOX(box); }
static void xplayer_fullscreen_parent_window_notify (GtkWidget *parent_window, GParamSpec *property, XplayerFullscreen *fs) { GtkWidget *popup; if (xplayer_fullscreen_is_fullscreen (fs) == FALSE) return; popup = gtk_scale_button_get_popup (GTK_SCALE_BUTTON (fs->volume)); if (parent_window == fs->priv->parent_window && gtk_window_is_active (GTK_WINDOW (parent_window)) == FALSE && gtk_widget_get_visible (popup) == FALSE) { xplayer_fullscreen_force_popup_hide (fs); xplayer_fullscreen_set_cursor (fs, TRUE); } else { xplayer_fullscreen_set_cursor (fs, FALSE); } }
static gboolean xplayer_fullscreen_is_volume_popup_visible (XplayerFullscreen *fs) { return gtk_widget_get_visible (gtk_scale_button_get_popup (GTK_SCALE_BUTTON (fs->volume))); }