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

Side by Side Diff: chrome/common/gtk_util.cc

Issue 398003: linux: Use gtk-cursor-blink from GtkSettings to set the caret blink interval (Closed)
Patch Set: latest Created 10 years, 10 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
« no previous file with comments | « no previous file | chrome/common/render_messages.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 "chrome/common/gtk_util.h" 5 #include "chrome/common/gtk_util.h"
6 6
7 #include <gtk/gtk.h> 7 #include <gtk/gtk.h>
8 #include <gdk/gdkx.h> 8 #include <gdk/gdkx.h>
9 9
10 #include <cstdarg> 10 #include <cstdarg>
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 GtkWidget* content_alignment = gtk_alignment_new(0.0, 0.5, 1.0, 1.0); 454 GtkWidget* content_alignment = gtk_alignment_new(0.0, 0.5, 1.0, 1.0);
455 gtk_alignment_set_padding(GTK_ALIGNMENT(content_alignment), 0, 0, 455 gtk_alignment_set_padding(GTK_ALIGNMENT(content_alignment), 0, 0,
456 gtk_util::kGroupIndent, 0); 456 gtk_util::kGroupIndent, 0);
457 gtk_container_add(GTK_CONTAINER(content_alignment), content); 457 gtk_container_add(GTK_CONTAINER(content_alignment), content);
458 return content_alignment; 458 return content_alignment;
459 } 459 }
460 460
461 void UpdateGtkFontSettings(RendererPreferences* prefs) { 461 void UpdateGtkFontSettings(RendererPreferences* prefs) {
462 DCHECK(prefs); 462 DCHECK(prefs);
463 463
464 // From http://library.gnome.org/devel/gtk/unstable/GtkSettings.html, this is
465 // the default value for gtk-cursor-blink-time.
466 static const gint kGtkDefaultCursorBlinkTime = 1200;
467
468 gint cursor_blink_time = kGtkDefaultCursorBlinkTime;
469 gboolean cursor_blink = TRUE;
464 gint antialias = 0; 470 gint antialias = 0;
465 gint hinting = 0; 471 gint hinting = 0;
466 gchar* hint_style = NULL; 472 gchar* hint_style = NULL;
467 gchar* rgba_style = NULL; 473 gchar* rgba_style = NULL;
468 g_object_get(gtk_settings_get_default(), 474 g_object_get(gtk_settings_get_default(),
475 "gtk-cursor-blink-time", &cursor_blink_time,
476 "gtk-cursor-blink", &cursor_blink,
469 "gtk-xft-antialias", &antialias, 477 "gtk-xft-antialias", &antialias,
470 "gtk-xft-hinting", &hinting, 478 "gtk-xft-hinting", &hinting,
471 "gtk-xft-hintstyle", &hint_style, 479 "gtk-xft-hintstyle", &hint_style,
472 "gtk-xft-rgba", &rgba_style, 480 "gtk-xft-rgba", &rgba_style,
473 NULL); 481 NULL);
474 482
475 // Set some reasonable defaults. 483 // Set some reasonable defaults.
476 prefs->should_antialias_text = true; 484 prefs->should_antialias_text = true;
477 prefs->hinting = RENDERER_PREFERENCES_HINTING_SYSTEM_DEFAULT; 485 prefs->hinting = RENDERER_PREFERENCES_HINTING_SYSTEM_DEFAULT;
478 prefs->subpixel_rendering = 486 prefs->subpixel_rendering =
479 RENDERER_PREFERENCES_SUBPIXEL_RENDERING_SYSTEM_DEFAULT; 487 RENDERER_PREFERENCES_SUBPIXEL_RENDERING_SYSTEM_DEFAULT;
480 488
489 if (cursor_blink) {
490 // Dividing by 2*1000ms follows the WebKit GTK port and makes the blink
491 // frequency appear similar to the omnibox. Without this the blink is too
492 // slow.
493 prefs->caret_blink_interval = cursor_blink_time / 2000.;
494 } else {
495 prefs->caret_blink_interval = 0;
496 }
497
481 // g_object_get() doesn't tell us whether the properties were present or not, 498 // g_object_get() doesn't tell us whether the properties were present or not,
482 // but if they aren't (because gnome-settings-daemon isn't running), we'll get 499 // but if they aren't (because gnome-settings-daemon isn't running), we'll get
483 // NULL values for the strings. 500 // NULL values for the strings.
484 if (hint_style && rgba_style) { 501 if (hint_style && rgba_style) {
485 prefs->should_antialias_text = antialias; 502 prefs->should_antialias_text = antialias;
486 503
487 if (hinting == 0 || strcmp(hint_style, "hintnone") == 0) { 504 if (hinting == 0 || strcmp(hint_style, "hintnone") == 0) {
488 prefs->hinting = RENDERER_PREFERENCES_HINTING_NONE; 505 prefs->hinting = RENDERER_PREFERENCES_HINTING_NONE;
489 } else if (strcmp(hint_style, "hintslight") == 0) { 506 } else if (strcmp(hint_style, "hintslight") == 0) {
490 prefs->hinting = RENDERER_PREFERENCES_HINTING_SLIGHT; 507 prefs->hinting = RENDERER_PREFERENCES_HINTING_SLIGHT;
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 g_signal_connect(container, "expose-event", 703 g_signal_connect(container, "expose-event",
687 G_CALLBACK(PaintNoBackground), NULL); 704 G_CALLBACK(PaintNoBackground), NULL);
688 } 705 }
689 706
690 void WrapLabelAtAllocationHack(GtkWidget* label) { 707 void WrapLabelAtAllocationHack(GtkWidget* label) {
691 g_signal_connect(label, "size-allocate", 708 g_signal_connect(label, "size-allocate",
692 G_CALLBACK(OnLabelAllocate), NULL); 709 G_CALLBACK(OnLabelAllocate), NULL);
693 } 710 }
694 711
695 } // namespace gtk_util 712 } // namespace gtk_util
OLDNEW
« no previous file with comments | « no previous file | chrome/common/render_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698