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

Side by Side Diff: views/widget/widget_gtk.cc

Issue 118102: Fixes a couple of bugs encountered in getting info bubbles to work:... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/views/info_bubble.cc ('k') | views/window/window_gtk.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "views/widget/widget_gtk.h" 5 #include "views/widget/widget_gtk.h"
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "views/fill_layout.h" 8 #include "views/fill_layout.h"
9 #include "views/widget/default_theme_provider.h" 9 #include "views/widget/default_theme_provider.h"
10 #include "views/widget/root_view.h" 10 #include "views/widget/root_view.h"
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 // g_signal_connect(G_OBJECT(widget_), "drag_data_received", 156 // g_signal_connect(G_OBJECT(widget_), "drag_data_received",
157 // G_CALLBACK(drag_data_received_event_cb), NULL); 157 // G_CALLBACK(drag_data_received_event_cb), NULL);
158 158
159 tooltip_manager_.reset(new TooltipManagerGtk(this)); 159 tooltip_manager_.reset(new TooltipManagerGtk(this));
160 160
161 if (type_ == TYPE_CHILD) { 161 if (type_ == TYPE_CHILD) {
162 WidgetGtk* parent_widget = GetViewForNative(parent); 162 WidgetGtk* parent_widget = GetViewForNative(parent);
163 parent_widget->AddChild(widget_); 163 parent_widget->AddChild(widget_);
164 parent_widget->PositionChild(widget_, bounds.x(), bounds.y(), 164 parent_widget->PositionChild(widget_, bounds.x(), bounds.y(),
165 bounds.width(), bounds.height()); 165 bounds.width(), bounds.height());
166 } else {
167 if (bounds.width() > 0 && bounds.height() > 0)
168 gtk_window_resize(GTK_WINDOW(widget_), bounds.width(), bounds.height());
169 gtk_window_move(GTK_WINDOW(widget_), bounds.x(), bounds.y());
166 } 170 }
167 } 171 }
168 172
169 void WidgetGtk::AddChild(GtkWidget* child) { 173 void WidgetGtk::AddChild(GtkWidget* child) {
170 gtk_container_add(GTK_CONTAINER(child_widget_parent_), child); 174 gtk_container_add(GTK_CONTAINER(child_widget_parent_), child);
171 } 175 }
172 176
173 void WidgetGtk::RemoveChild(GtkWidget* child) { 177 void WidgetGtk::RemoveChild(GtkWidget* child) {
174 gtk_container_remove(GTK_CONTAINER(child_widget_parent_), child); 178 gtk_container_remove(GTK_CONTAINER(child_widget_parent_), child);
175 } 179 }
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 SetWindowForNative(widget_, static_cast<WindowGtk*>(this)); 361 SetWindowForNative(widget_, static_cast<WindowGtk*>(this));
358 SetViewForNative(widget_, this); 362 SetViewForNative(widget_, this);
359 363
360 child_widget_parent_ = gtk_fixed_new(); 364 child_widget_parent_ = gtk_fixed_new();
361 gtk_fixed_set_has_window(GTK_FIXED(child_widget_parent_), true); 365 gtk_fixed_set_has_window(GTK_FIXED(child_widget_parent_), true);
362 gtk_container_add(GTK_CONTAINER(widget_), child_widget_parent_); 366 gtk_container_add(GTK_CONTAINER(widget_), child_widget_parent_);
363 gtk_widget_show(child_widget_parent_); 367 gtk_widget_show(child_widget_parent_);
364 368
365 SetViewForNative(child_widget_parent_, this); 369 SetViewForNative(child_widget_parent_, this);
366 } 370 }
367 gtk_widget_show(widget_);
368 } 371 }
369 372
370 void WidgetGtk::OnSizeAllocate(GtkWidget* widget, GtkAllocation* allocation) { 373 void WidgetGtk::OnSizeAllocate(GtkWidget* widget, GtkAllocation* allocation) {
371 root_view_->SetBounds(0, 0, allocation->width, allocation->height); 374 root_view_->SetBounds(0, 0, allocation->width, allocation->height);
372 root_view_->Layout(); 375 root_view_->Layout();
373 root_view_->SchedulePaint(); 376 root_view_->SchedulePaint();
374 } 377 }
375 378
376 gboolean WidgetGtk::OnMotionNotify(GtkWidget* widget, GdkEventMotion* event) { 379 gboolean WidgetGtk::OnMotionNotify(GtkWidget* widget, GdkEventMotion* event) {
377 if (has_capture_ && is_mouse_down_) { 380 if (has_capture_ && is_mouse_down_) {
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after
687 void WidgetGtk::HandleGrabBroke() { 690 void WidgetGtk::HandleGrabBroke() {
688 if (has_capture_) { 691 if (has_capture_) {
689 if (is_mouse_down_) 692 if (is_mouse_down_)
690 root_view_->ProcessMouseDragCanceled(); 693 root_view_->ProcessMouseDragCanceled();
691 is_mouse_down_ = false; 694 is_mouse_down_ = false;
692 has_capture_ = false; 695 has_capture_ = false;
693 } 696 }
694 } 697 }
695 698
696 } // namespace views 699 } // namespace views
OLDNEW
« no previous file with comments | « chrome/browser/views/info_bubble.cc ('k') | views/window/window_gtk.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698