Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(667)

Unified Diff: views/window/native_window_gtk.cc

Issue 6976040: Revert 86914 - Move a bunch of functions from Window onto Widget. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « views/window/native_window_gtk.h ('k') | views/window/native_window_views.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: views/window/native_window_gtk.cc
===================================================================
--- views/window/native_window_gtk.cc (revision 86938)
+++ views/window/native_window_gtk.cc (working copy)
@@ -80,6 +80,7 @@
NativeWindowGtk::NativeWindowGtk(internal::NativeWindowDelegate* delegate)
: NativeWidgetGtk(delegate->AsNativeWidgetDelegate()),
delegate_(delegate),
+ window_state_(GDK_WINDOW_STATE_WITHDRAWN),
window_closed_(false) {
is_window_ = true;
}
@@ -181,6 +182,14 @@
SaveWindowPosition();
}
+gboolean NativeWindowGtk::OnWindowStateEvent(GtkWidget* widget,
+ GdkEventWindowState* event) {
+ window_state_ = event->new_window_state;
+ if (!(window_state_ & GDK_WINDOW_STATE_WITHDRAWN))
+ SaveWindowPosition();
+ return FALSE;
+}
+
gboolean NativeWindowGtk::OnLeaveNotify(GtkWidget* widget,
GdkEventCrossing* event) {
gdk_window_set_cursor(widget->window, gfx::GetCursor(GDK_LEFT_PTR));
@@ -198,6 +207,8 @@
g_signal_connect(G_OBJECT(GetNativeWindow()), "configure-event",
G_CALLBACK(CallConfigureEvent), this);
+ g_signal_connect(G_OBJECT(GetNativeWindow()), "window-state-event",
+ G_CALLBACK(CallWindowStateEvent), this);
}
////////////////////////////////////////////////////////////////////////////////
@@ -291,6 +302,51 @@
NativeWidgetGtk::SetBounds(bounds);
}
+void NativeWindowGtk::HideWindow() {
+ GetWindow()->Hide();
+}
+
+void NativeWindowGtk::Activate() {
+ gtk_window_present(GTK_WINDOW(GetNativeView()));
+}
+
+void NativeWindowGtk::Deactivate() {
+ gdk_window_lower(GTK_WIDGET(GetNativeView())->window);
+}
+
+void NativeWindowGtk::Maximize() {
+ gtk_window_maximize(GetNativeWindow());
+}
+
+void NativeWindowGtk::Minimize() {
+ gtk_window_iconify(GetNativeWindow());
+}
+
+void NativeWindowGtk::Restore() {
+ if (IsMaximized())
+ gtk_window_unmaximize(GetNativeWindow());
+ else if (IsMinimized())
+ gtk_window_deiconify(GetNativeWindow());
+ else if (IsFullscreen())
+ SetFullscreen(false);
+}
+
+bool NativeWindowGtk::IsActive() const {
+ return NativeWidgetGtk::IsActive();
+}
+
+bool NativeWindowGtk::IsVisible() const {
+ return GTK_WIDGET_VISIBLE(GetNativeView());
+}
+
+bool NativeWindowGtk::IsMaximized() const {
+ return window_state_ & GDK_WINDOW_STATE_MAXIMIZED;
+}
+
+bool NativeWindowGtk::IsMinimized() const {
+ return window_state_ & GDK_WINDOW_STATE_ICONIFIED;
+}
+
void NativeWindowGtk::SetFullscreen(bool fullscreen) {
if (fullscreen)
gtk_window_fullscreen(GetNativeWindow());
@@ -310,12 +366,20 @@
return NULL;
}
+void NativeWindowGtk::SetAlwaysOnTop(bool always_on_top) {
+ gtk_window_set_keep_above(GetNativeWindow(), always_on_top);
+}
+
void NativeWindowGtk::UpdateFrameAfterFrameChange() {
// We currently don't support different frame types on Gtk, so we don't
// need to implement this.
NOTIMPLEMENTED();
}
+gfx::NativeWindow NativeWindowGtk::GetNativeWindow() const {
+ return GTK_WINDOW(GetNativeView());
+}
+
bool NativeWindowGtk::ShouldUseNativeFrame() const {
return false;
}
@@ -328,23 +392,6 @@
}
////////////////////////////////////////////////////////////////////////////////
-// NativeWindowGtk, NativeWidgetGtk overrides:
-
-void NativeWindowGtk::Restore() {
- if (IsFullscreen())
- SetFullscreen(false);
- else
- NativeWidgetGtk::Restore();
-}
-
-gboolean NativeWindowGtk::OnWindowStateEvent(GtkWidget* widget,
- GdkEventWindowState* event) {
- if (!(event->new_window_state & GDK_WINDOW_STATE_WITHDRAWN))
- SaveWindowPosition();
- return NativeWidgetGtk::OnWindowStateEvent(widget, event);
-}
-
-////////////////////////////////////////////////////////////////////////////////
// NativeWindowGtk, private:
// static
@@ -354,6 +401,13 @@
return window_gtk->OnConfigureEvent(widget, event);
}
+// static
+gboolean NativeWindowGtk::CallWindowStateEvent(GtkWidget* widget,
+ GdkEventWindowState* event,
+ NativeWindowGtk* window_gtk) {
+ return window_gtk->OnWindowStateEvent(widget, event);
+}
+
void NativeWindowGtk::SaveWindowPosition() {
// The delegate may have gone away on us.
if (!GetWindow()->window_delegate())
« no previous file with comments | « views/window/native_window_gtk.h ('k') | views/window/native_window_views.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698