st: Remove custom text direction stuff

Clutter has its own built-in system for managing text directions, like GTK+.
Convert over to use this.

https://bugzilla.gnome.org/show_bug.cgi?id=670034
This commit is contained in:
Jasper St. Pierre 2012-02-13 20:37:28 -05:00
parent d5285674ae
commit 15f881f967
22 changed files with 54 additions and 115 deletions

View File

@ -624,7 +624,7 @@ const AppIconMenu = new Lang.Class({
_init: function(source) { _init: function(source) {
let side = St.Side.LEFT; let side = St.Side.LEFT;
if (St.Widget.get_default_direction() == St.TextDirection.RTL) if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL)
side = St.Side.RIGHT; side = St.Side.RIGHT;
this.parent(source.actor, 0.5, side); this.parent(source.actor, 0.5, side);

View File

@ -110,7 +110,7 @@ const DashItemContainer = new Lang.Class({
let xOffset = node.get_length('-x-offset'); let xOffset = node.get_length('-x-offset');
let x; let x;
if (St.Widget.get_default_direction () == St.TextDirection.RTL) if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL)
x = stageX - this._label.get_width() - xOffset; x = stageX - this._label.get_width() - xOffset;
else else
x = stageX + this.actor.get_width() + xOffset; x = stageX + this.actor.get_width() + xOffset;

View File

@ -52,7 +52,7 @@ const DateMenuButton = new Lang.Class({
let vbox; let vbox;
let menuAlignment = 0.25; let menuAlignment = 0.25;
if (St.Widget.get_default_direction() == St.TextDirection.RTL) if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL)
menuAlignment = 1.0 - menuAlignment; menuAlignment = 1.0 - menuAlignment;
this.parent(menuAlignment); this.parent(menuAlignment);

View File

@ -48,11 +48,6 @@ function init() {
window.C_ = Gettext.pgettext; window.C_ = Gettext.pgettext;
window.ngettext = Gettext.ngettext; window.ngettext = Gettext.ngettext;
// Set the default direction for St widgets (this needs to be done before any use of St)
if (Gtk.Widget.get_default_direction() == Gtk.TextDirection.RTL) {
St.Widget.set_default_direction(St.TextDirection.RTL);
}
// Miscellaneous monkeypatching // Miscellaneous monkeypatching
_patchContainerClass(St.BoxLayout); _patchContainerClass(St.BoxLayout);
_patchContainerClass(St.Table); _patchContainerClass(St.Table);

View File

@ -251,7 +251,7 @@ const IconGrid = new Lang.Class({
let childYSpacing = Math.max(0, height - childNaturalHeight) / 2; let childYSpacing = Math.max(0, height - childNaturalHeight) / 2;
let childBox = new Clutter.ActorBox(); let childBox = new Clutter.ActorBox();
if (St.Widget.get_default_direction() == St.TextDirection.RTL) { if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL) {
let _x = box.x2 - (x + width); let _x = box.x2 - (x + width);
childBox.x1 = Math.floor(_x - childXSpacing); childBox.x1 = Math.floor(_x - childXSpacing);
} else { } else {

View File

@ -22,7 +22,7 @@ const LayoutManager = new Lang.Class({
Name: 'LayoutManager', Name: 'LayoutManager',
_init: function () { _init: function () {
this._rtl = (St.Widget.get_default_direction() == St.TextDirection.RTL); this._rtl = (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL);
this.monitors = []; this.monitors = [];
this.primaryMonitor = null; this.primaryMonitor = null;
this.primaryIndex = -1; this.primaryIndex = -1;
@ -405,7 +405,7 @@ const HotCorner = new Lang.Class({
this.actor.add_actor(this._corner); this.actor.add_actor(this._corner);
if (St.Widget.get_default_direction() == St.TextDirection.RTL) { if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL) {
this._corner.set_position(this.actor.width - this._corner.width, 0); this._corner.set_position(this.actor.width - this._corner.width, 0);
this.actor.set_anchor_point_from_gravity(Clutter.Gravity.NORTH_EAST); this.actor.set_anchor_point_from_gravity(Clutter.Gravity.NORTH_EAST);
} else { } else {
@ -457,7 +457,7 @@ const HotCorner = new Lang.Class({
ripple._opacity = startOpacity; ripple._opacity = startOpacity;
if (ripple.get_direction() == St.TextDirection.RTL) if (ripple.get_text_direction() == Clutter.TextDirection.RTL)
ripple.set_anchor_point_from_gravity(Clutter.Gravity.NORTH_EAST); ripple.set_anchor_point_from_gravity(Clutter.Gravity.NORTH_EAST);
ripple.visible = true; ripple.visible = true;

View File

@ -423,7 +423,7 @@ const Notification = new Lang.Class({
this._bannerBodyText = null; this._bannerBodyText = null;
this._bannerBodyMarkup = false; this._bannerBodyMarkup = false;
this._titleFitsInBannerMode = true; this._titleFitsInBannerMode = true;
this._titleDirection = St.TextDirection.NONE; this._titleDirection = Clutter.TextDirection.DEFAULT;
this._spacing = 0; this._spacing = 0;
this._scrollPolicy = Gtk.PolicyType.AUTOMATIC; this._scrollPolicy = Gtk.PolicyType.AUTOMATIC;
this._imageBin = null; this._imageBin = null;
@ -544,9 +544,9 @@ const Notification = new Lang.Class({
this._titleLabel.clutter_text.set_markup('<b>' + title + '</b>'); this._titleLabel.clutter_text.set_markup('<b>' + title + '</b>');
if (Pango.find_base_dir(title, -1) == Pango.Direction.RTL) if (Pango.find_base_dir(title, -1) == Pango.Direction.RTL)
this._titleDirection = St.TextDirection.RTL; this._titleDirection = Clutter.TextDirection.RTL;
else else
this._titleDirection = St.TextDirection.LTR; this._titleDirection = Clutter.TextDirection.LTR;
// Let the title's text direction control the overall direction // Let the title's text direction control the overall direction
// of the notification - in case where different scripts are used // of the notification - in case where different scripts are used
@ -554,7 +554,7 @@ const Notification = new Lang.Class({
// arguably for action buttons as well. Labels other than the title // arguably for action buttons as well. Labels other than the title
// will be allocated at the available width, so that their alignment // will be allocated at the available width, so that their alignment
// is done correctly automatically. // is done correctly automatically.
this._table.set_direction(this._titleDirection); this._table.set_text_direction(this._titleDirection);
// Unless the notification has custom content, we save this._bannerBodyText // Unless the notification has custom content, we save this._bannerBodyText
// to add it to the content of the notification if the notification is // to add it to the content of the notification if the notification is
@ -802,7 +802,7 @@ const Notification = new Lang.Class({
let titleBox = new Clutter.ActorBox(); let titleBox = new Clutter.ActorBox();
let titleBoxW = Math.min(titleNatW, availWidth); let titleBoxW = Math.min(titleNatW, availWidth);
if (this._titleDirection == St.TextDirection.RTL) { if (this._titleDirection == Clutter.TextDirection.RTL) {
titleBox.x1 = availWidth - titleBoxW; titleBox.x1 = availWidth - titleBoxW;
titleBox.x2 = availWidth; titleBox.x2 = availWidth;
} else { } else {
@ -821,7 +821,7 @@ const Notification = new Lang.Class({
} else { } else {
let bannerBox = new Clutter.ActorBox(); let bannerBox = new Clutter.ActorBox();
if (this._titleDirection == St.TextDirection.RTL) { if (this._titleDirection == Clutter.TextDirection.RTL) {
bannerBox.x1 = 0; bannerBox.x1 = 0;
bannerBox.x2 = titleBox.x1 - this._spacing; bannerBox.x2 = titleBox.x1 - this._spacing;
@ -1005,9 +1005,9 @@ const Source = new Lang.Class({
let childBox = new Clutter.ActorBox(); let childBox = new Clutter.ActorBox();
let [minWidth, minHeight, naturalWidth, naturalHeight] = this._counterBin.get_preferred_size(); let [minWidth, minHeight, naturalWidth, naturalHeight] = this._counterBin.get_preferred_size();
let direction = this.actor.get_direction(); let direction = this.actor.get_text_direction();
if (direction == St.TextDirection.LTR) { if (direction == Clutter.TextDirection.LTR) {
// allocate on the right in LTR // allocate on the right in LTR
childBox.x1 = box.x2 - naturalWidth; childBox.x1 = box.x2 - naturalWidth;
childBox.x2 = box.x2; childBox.x2 = box.x2;
@ -1491,7 +1491,7 @@ const MessageTray = new Lang.Class({
this._summaryBin.x = 0; this._summaryBin.x = 0;
this._summaryBin.width = monitor.width; this._summaryBin.width = monitor.width;
if (St.Widget.get_default_direction() == St.TextDirection.RTL) if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL)
this._corner.x = 0; this._corner.x = 0;
else else
this._corner.x = Main.layoutManager.trayBox.width - 1; this._corner.x = Main.layoutManager.trayBox.width - 1;

View File

@ -357,7 +357,7 @@ const Overview = new Lang.Class({
let direction; let direction;
if (this._scrollDirection == SwipeScrollDirection.HORIZONTAL) { if (this._scrollDirection == SwipeScrollDirection.HORIZONTAL) {
direction = stageX > this._dragStartX ? -1 : 1; direction = stageX > this._dragStartX ? -1 : 1;
if (St.Widget.get_default_direction() == St.TextDirection.RTL) if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL)
direction *= -1; direction *= -1;
} else { } else {
direction = stageY > this._dragStartY ? -1 : 1; direction = stageY > this._dragStartY ? -1 : 1;
@ -449,7 +449,7 @@ const Overview = new Lang.Class({
return true; return true;
if (this._scrollDirection == SwipeScrollDirection.HORIZONTAL) { if (this._scrollDirection == SwipeScrollDirection.HORIZONTAL) {
if (St.Widget.get_default_direction() == St.TextDirection.RTL) if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL)
this._scrollAdjustment.value -= (dx / primary.width) * this._scrollAdjustment.page_size; this._scrollAdjustment.value -= (dx / primary.width) * this._scrollAdjustment.page_size;
else else
this._scrollAdjustment.value += (dx / primary.width) * this._scrollAdjustment.page_size; this._scrollAdjustment.value += (dx / primary.width) * this._scrollAdjustment.page_size;
@ -490,7 +490,7 @@ const Overview = new Lang.Class({
this.hide(); this.hide();
let primary = Main.layoutManager.primaryMonitor; let primary = Main.layoutManager.primaryMonitor;
let rtl = (St.Widget.get_default_direction () == St.TextDirection.RTL); let rtl = (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL);
let contentY = Main.panel.actor.height; let contentY = Main.panel.actor.height;
let contentHeight = primary.height - contentY - Main.messageTray.actor.height; let contentHeight = primary.height - contentY - Main.messageTray.actor.height;

View File

@ -412,12 +412,12 @@ const AppMenuButton = new Lang.Class({
let [minWidth, minHeight, naturalWidth, naturalHeight] = this._iconBox.get_preferred_size(); let [minWidth, minHeight, naturalWidth, naturalHeight] = this._iconBox.get_preferred_size();
let direction = this.actor.get_direction(); let direction = this.actor.get_text_direction();
let yPadding = Math.floor(Math.max(0, allocHeight - naturalHeight) / 2); let yPadding = Math.floor(Math.max(0, allocHeight - naturalHeight) / 2);
childBox.y1 = yPadding; childBox.y1 = yPadding;
childBox.y2 = childBox.y1 + Math.min(naturalHeight, allocHeight); childBox.y2 = childBox.y1 + Math.min(naturalHeight, allocHeight);
if (direction == St.TextDirection.LTR) { if (direction == Clutter.TextDirection.LTR) {
childBox.x1 = 0; childBox.x1 = 0;
childBox.x2 = childBox.x1 + Math.min(naturalWidth, allocWidth); childBox.x2 = childBox.x1 + Math.min(naturalWidth, allocWidth);
} else { } else {
@ -434,7 +434,7 @@ const AppMenuButton = new Lang.Class({
childBox.y1 = yPadding; childBox.y1 = yPadding;
childBox.y2 = childBox.y1 + Math.min(naturalHeight, allocHeight); childBox.y2 = childBox.y1 + Math.min(naturalHeight, allocHeight);
if (direction == St.TextDirection.LTR) { if (direction == Clutter.TextDirection.LTR) {
childBox.x1 = Math.floor(iconWidth / 2); childBox.x1 = Math.floor(iconWidth / 2);
childBox.x2 = Math.min(childBox.x1 + naturalWidth, allocWidth); childBox.x2 = Math.min(childBox.x1 + naturalWidth, allocWidth);
} else { } else {
@ -443,7 +443,7 @@ const AppMenuButton = new Lang.Class({
} }
this._label.actor.allocate(childBox, flags); this._label.actor.allocate(childBox, flags);
if (direction == St.TextDirection.LTR) { if (direction == Clutter.TextDirection.LTR) {
childBox.x1 = Math.floor(iconWidth / 2) + this._label.actor.width; childBox.x1 = Math.floor(iconWidth / 2) + this._label.actor.width;
childBox.x2 = childBox.x1 + this._spinner.actor.width; childBox.x2 = childBox.x1 + this._spinner.actor.width;
childBox.y1 = box.y1; childBox.y1 = box.y1;
@ -653,7 +653,7 @@ const ActivitiesButton = new Lang.Class({
let primary = Main.layoutManager.primaryMonitor; let primary = Main.layoutManager.primaryMonitor;
let hotBox = new Clutter.ActorBox(); let hotBox = new Clutter.ActorBox();
let ok, x, y; let ok, x, y;
if (actor.get_direction() == St.TextDirection.LTR) { if (actor.get_text_direction() == Clutter.TextDirection.LTR) {
[ok, x, y] = actor.transform_stage_point(primary.x, primary.y) [ok, x, y] = actor.transform_stage_point(primary.x, primary.y)
} else { } else {
[ok, x, y] = actor.transform_stage_point(primary.x + primary.width, primary.y); [ok, x, y] = actor.transform_stage_point(primary.x + primary.width, primary.y);
@ -807,7 +807,7 @@ const PanelCorner = new Lang.Class({
let rtlAwareContainer = this._box instanceof St.BoxLayout; let rtlAwareContainer = this._box instanceof St.BoxLayout;
if (rtlAwareContainer && if (rtlAwareContainer &&
this._box.get_direction() == St.TextDirection.RTL) { this._box.get_text_direction() == Clutter.TextDirection.RTL) {
if (this._side == St.Side.LEFT) if (this._side == St.Side.LEFT)
side = St.Side.RIGHT; side = St.Side.RIGHT;
else if (this._side == St.Side.RIGHT) else if (this._side == St.Side.RIGHT)
@ -928,14 +928,14 @@ const Panel = new Lang.Class({
this._rightBox = new St.BoxLayout({ name: 'panelRight' }); this._rightBox = new St.BoxLayout({ name: 'panelRight' });
this.actor.add_actor(this._rightBox); this.actor.add_actor(this._rightBox);
if (this.actor.get_direction() == St.TextDirection.RTL) if (this.actor.get_text_direction() == Clutter.TextDirection.RTL)
this._leftCorner = new PanelCorner(this._rightBox, St.Side.LEFT); this._leftCorner = new PanelCorner(this._rightBox, St.Side.LEFT);
else else
this._leftCorner = new PanelCorner(this._leftBox, St.Side.LEFT); this._leftCorner = new PanelCorner(this._leftBox, St.Side.LEFT);
this.actor.add_actor(this._leftCorner.actor); this.actor.add_actor(this._leftCorner.actor);
if (this.actor.get_direction() == St.TextDirection.RTL) if (this.actor.get_text_direction() == Clutter.TextDirection.RTL)
this._rightCorner = new PanelCorner(this._leftBox, St.Side.RIGHT); this._rightCorner = new PanelCorner(this._leftBox, St.Side.RIGHT);
else else
this._rightCorner = new PanelCorner(this._rightBox, St.Side.RIGHT); this._rightCorner = new PanelCorner(this._rightBox, St.Side.RIGHT);
@ -1011,7 +1011,7 @@ const Panel = new Lang.Class({
childBox.y1 = 0; childBox.y1 = 0;
childBox.y2 = allocHeight; childBox.y2 = allocHeight;
if (this.actor.get_direction() == St.TextDirection.RTL) { if (this.actor.get_text_direction() == Clutter.TextDirection.RTL) {
childBox.x1 = allocWidth - Math.min(Math.floor(sideWidth), childBox.x1 = allocWidth - Math.min(Math.floor(sideWidth),
leftNaturalWidth); leftNaturalWidth);
childBox.x2 = allocWidth; childBox.x2 = allocWidth;
@ -1030,7 +1030,7 @@ const Panel = new Lang.Class({
childBox.y1 = 0; childBox.y1 = 0;
childBox.y2 = allocHeight; childBox.y2 = allocHeight;
if (this.actor.get_direction() == St.TextDirection.RTL) { if (this.actor.get_text_direction() == Clutter.TextDirection.RTL) {
childBox.x1 = 0; childBox.x1 = 0;
childBox.x2 = Math.min(Math.floor(sideWidth), childBox.x2 = Math.min(Math.floor(sideWidth),
rightNaturalWidth); rightNaturalWidth);

View File

@ -273,7 +273,7 @@ const PopupBaseMenuItem = new Lang.Class({
_allocate: function(actor, box, flags) { _allocate: function(actor, box, flags) {
let height = box.y2 - box.y1; let height = box.y2 - box.y1;
let direction = this.actor.get_direction(); let direction = this.actor.get_text_direction();
if (this._dot) { if (this._dot) {
// The dot is placed outside box // The dot is placed outside box
@ -283,7 +283,7 @@ const PopupBaseMenuItem = new Lang.Class({
let dotBox = new Clutter.ActorBox(); let dotBox = new Clutter.ActorBox();
let dotWidth = Math.round(box.x1 / 2); let dotWidth = Math.round(box.x1 / 2);
if (direction == St.TextDirection.LTR) { if (direction == Clutter.TextDirection.LTR) {
dotBox.x1 = Math.round(box.x1 / 4); dotBox.x1 = Math.round(box.x1 / 4);
dotBox.x2 = dotBox.x1 + dotWidth; dotBox.x2 = dotBox.x1 + dotWidth;
} else { } else {
@ -296,7 +296,7 @@ const PopupBaseMenuItem = new Lang.Class({
} }
let x; let x;
if (direction == St.TextDirection.LTR) if (direction == Clutter.TextDirection.LTR)
x = box.x1; x = box.x1;
else else
x = box.x2; x = box.x2;
@ -311,7 +311,7 @@ const PopupBaseMenuItem = new Lang.Class({
let availWidth, extraWidth; let availWidth, extraWidth;
if (this._columnWidths) { if (this._columnWidths) {
if (child.span == -1) { if (child.span == -1) {
if (direction == St.TextDirection.LTR) if (direction == Clutter.TextDirection.LTR)
availWidth = box.x2 - x; availWidth = box.x2 - x;
else else
availWidth = x - box.x1; availWidth = x - box.x1;
@ -323,7 +323,7 @@ const PopupBaseMenuItem = new Lang.Class({
extraWidth = availWidth - naturalWidth; extraWidth = availWidth - naturalWidth;
} else { } else {
if (child.span == -1) { if (child.span == -1) {
if (direction == St.TextDirection.LTR) if (direction == Clutter.TextDirection.LTR)
availWidth = box.x2 - x; availWidth = box.x2 - x;
else else
availWidth = x - box.x1; availWidth = x - box.x1;
@ -333,7 +333,7 @@ const PopupBaseMenuItem = new Lang.Class({
extraWidth = 0; extraWidth = 0;
} }
if (direction == St.TextDirection.LTR) { if (direction == Clutter.TextDirection.LTR) {
if (child.expand) { if (child.expand) {
childBox.x1 = x; childBox.x1 = x;
childBox.x2 = x + availWidth; childBox.x2 = x + availWidth;
@ -371,7 +371,7 @@ const PopupBaseMenuItem = new Lang.Class({
child.actor.allocate(childBox, flags); child.actor.allocate(childBox, flags);
if (direction == St.TextDirection.LTR) if (direction == Clutter.TextDirection.LTR)
x += availWidth + this._spacing; x += availWidth + this._spacing;
else else
x -= availWidth + this._spacing; x -= availWidth + this._spacing;

View File

@ -486,7 +486,7 @@ const ViewSelector = new Lang.Class({
let childBox = new Clutter.ActorBox(); let childBox = new Clutter.ActorBox();
childBox.y1 = 0; childBox.y1 = 0;
childBox.y2 = allocHeight; childBox.y2 = allocHeight;
if (this.actor.get_direction() == St.TextDirection.RTL) { if (this.actor.get_text_direction() == Clutter.TextDirection.RTL) {
childBox.x1 = allocWidth - barNatWidth; childBox.x1 = allocWidth - barNatWidth;
childBox.x2 = allocWidth; childBox.x2 = allocWidth;
} else { } else {
@ -495,7 +495,7 @@ const ViewSelector = new Lang.Class({
} }
this._tabBox.allocate(childBox, flags); this._tabBox.allocate(childBox, flags);
if (this.actor.get_direction() == St.TextDirection.RTL) { if (this.actor.get_text_direction() == Clutter.TextDirection.RTL) {
childBox.x1 = 0; childBox.x1 = 0;
childBox.x2 = searchNatWidth; childBox.x2 = searchNatWidth;
} else { } else {

View File

@ -186,7 +186,7 @@ const WindowManager = new Lang.Class({
let primary = Main.layoutManager.primaryMonitor; let primary = Main.layoutManager.primaryMonitor;
let xDest = primary.x; let xDest = primary.x;
if (St.Widget.get_default_direction() == St.TextDirection.RTL) if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL)
xDest += primary.width; xDest += primary.width;
Tweener.addTween(actor, Tweener.addTween(actor,
@ -567,7 +567,7 @@ const WindowManager = new Lang.Class({
}, },
actionMoveWorkspaceLeft: function() { actionMoveWorkspaceLeft: function() {
let rtl = (St.Widget.get_default_direction() == St.TextDirection.RTL); let rtl = (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL);
let activeWorkspaceIndex = global.screen.get_active_workspace_index(); let activeWorkspaceIndex = global.screen.get_active_workspace_index();
let indexToActivate = activeWorkspaceIndex; let indexToActivate = activeWorkspaceIndex;
if (rtl && activeWorkspaceIndex < global.screen.n_workspaces - 1) if (rtl && activeWorkspaceIndex < global.screen.n_workspaces - 1)
@ -583,7 +583,7 @@ const WindowManager = new Lang.Class({
}, },
actionMoveWorkspaceRight: function() { actionMoveWorkspaceRight: function() {
let rtl = (St.Widget.get_default_direction() == St.TextDirection.RTL); let rtl = (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL);
let activeWorkspaceIndex = global.screen.get_active_workspace_index(); let activeWorkspaceIndex = global.screen.get_active_workspace_index();
let indexToActivate = activeWorkspaceIndex; let indexToActivate = activeWorkspaceIndex;
if (rtl && activeWorkspaceIndex > 0) if (rtl && activeWorkspaceIndex > 0)

View File

@ -528,7 +528,7 @@ const WindowOverlay = new Lang.Class({
let settings = new Gio.Settings({ schema: BUTTON_LAYOUT_SCHEMA }); let settings = new Gio.Settings({ schema: BUTTON_LAYOUT_SCHEMA });
let layout = settings.get_string(BUTTON_LAYOUT_KEY); let layout = settings.get_string(BUTTON_LAYOUT_KEY);
let rtl = St.Widget.get_default_direction() == St.TextDirection.RTL; let rtl = Clutter.get_default_text_direction() == Clutter.TextDirection.RTL;
let split = layout.split(":"); let split = layout.split(":");
let side; let side;

View File

@ -952,7 +952,7 @@ const ThumbnailsBox = new Lang.Class({
}, },
_allocate: function(actor, box, flags) { _allocate: function(actor, box, flags) {
let rtl = (St.Widget.get_default_direction () == St.TextDirection.RTL); let rtl = (Clutter.get_default_text_direction () == Clutter.TextDirection.RTL);
// See comment about this._background in _init() // See comment about this._background in _init()
let themeNode = this._background.get_theme_node(); let themeNode = this._background.get_theme_node();

View File

@ -790,7 +790,7 @@ const WorkspacesDisplay = new Lang.Class({
let controlsVisible = this._controls.get_theme_node().get_length('visible-width'); let controlsVisible = this._controls.get_theme_node().get_length('visible-width');
let controlsReserved = controlsVisible * (1 - this._zoomFraction) + controlsNatural * this._zoomFraction; let controlsReserved = controlsVisible * (1 - this._zoomFraction) + controlsNatural * this._zoomFraction;
let rtl = (St.Widget.get_default_direction () == St.TextDirection.RTL); let rtl = (Clutter.get_default_text_direction () == Clutter.TextDirection.RTL);
if (rtl) { if (rtl) {
childBox.x2 = controlsReserved; childBox.x2 = controlsReserved;
childBox.x1 = childBox.x2 - controlsNatural; childBox.x1 = childBox.x2 - controlsNatural;
@ -850,7 +850,7 @@ const WorkspacesDisplay = new Lang.Class({
let [x, y] = this.actor.get_transformed_position(); let [x, y] = this.actor.get_transformed_position();
let rtl = (St.Widget.get_default_direction () == St.TextDirection.RTL); let rtl = (Clutter.get_default_text_direction () == Clutter.TextDirection.RTL);
let clipWidth = width - controlsVisible; let clipWidth = width - controlsVisible;
let clipHeight = (fullHeight / fullWidth) * clipWidth; let clipHeight = (fullHeight / fullWidth) * clipWidth;

View File

@ -611,7 +611,7 @@ st_box_layout_allocate (ClutterActor *actor,
gint n_expand_children = 0, i; gint n_expand_children = 0, i;
gfloat expand_amount, shrink_amount; gfloat expand_amount, shrink_amount;
BoxChildShrink *shrinks = NULL; BoxChildShrink *shrinks = NULL;
gboolean flip = (st_widget_get_direction (ST_WIDGET (actor)) == ST_TEXT_DIRECTION_RTL) gboolean flip = (clutter_actor_get_text_direction (actor) == CLUTTER_TEXT_DIRECTION_RTL)
&& (!priv->is_vertical); && (!priv->is_vertical);
ClutterActor *child; ClutterActor *child;

View File

@ -257,7 +257,7 @@ _st_get_align_factors (StWidget *widget,
break; break;
} }
if (st_widget_get_direction (widget) == ST_TEXT_DIRECTION_RTL) if (clutter_actor_get_text_direction (CLUTTER_ACTOR (widget)) == CLUTTER_TEXT_DIRECTION_RTL)
*x_align_out = 1.0 - *x_align_out; *x_align_out = 1.0 - *x_align_out;
} }

View File

@ -228,7 +228,7 @@ st_scroll_view_fade_paint_target (ClutterOffscreenEffect *effect)
if (v_scroll_visible) if (v_scroll_visible)
{ {
if (st_widget_get_direction (ST_WIDGET (self->actor)) == ST_TEXT_DIRECTION_RTL) if (clutter_actor_get_text_direction (self->actor) == CLUTTER_TEXT_DIRECTION_RTL)
fade_area[0][0] += clutter_actor_get_width (vscroll); fade_area[0][0] += clutter_actor_get_width (vscroll);
fade_area[1][0] -= clutter_actor_get_width (vscroll); fade_area[1][0] -= clutter_actor_get_width (vscroll);

View File

@ -583,7 +583,7 @@ st_scroll_view_allocate (ClutterActor *actor,
/* Vertical scrollbar */ /* Vertical scrollbar */
if (CLUTTER_ACTOR_IS_VISIBLE (priv->vscroll)) if (CLUTTER_ACTOR_IS_VISIBLE (priv->vscroll))
{ {
if (st_widget_get_direction (ST_WIDGET (actor)) == ST_TEXT_DIRECTION_RTL) if (clutter_actor_get_text_direction (actor) == CLUTTER_TEXT_DIRECTION_RTL)
{ {
child_box.x1 = content_box.x1; child_box.x1 = content_box.x1;
child_box.x2 = content_box.x1 + sb_width; child_box.x2 = content_box.x1 + sb_width;
@ -602,7 +602,7 @@ st_scroll_view_allocate (ClutterActor *actor,
/* Horizontal scrollbar */ /* Horizontal scrollbar */
if (CLUTTER_ACTOR_IS_VISIBLE (priv->hscroll)) if (CLUTTER_ACTOR_IS_VISIBLE (priv->hscroll))
{ {
if (st_widget_get_direction (ST_WIDGET (actor)) == ST_TEXT_DIRECTION_RTL) if (clutter_actor_get_text_direction (actor) == CLUTTER_TEXT_DIRECTION_RTL)
{ {
child_box.x1 = content_box.x1 + (vscrollbar_visible ? sb_width : 0); child_box.x1 = content_box.x1 + (vscrollbar_visible ? sb_width : 0);
child_box.x2 = content_box.x2; child_box.x2 = content_box.x2;
@ -627,7 +627,7 @@ st_scroll_view_allocate (ClutterActor *actor,
sb_width = 0; sb_width = 0;
/* Child */ /* Child */
if (st_widget_get_direction (ST_WIDGET (actor)) == ST_TEXT_DIRECTION_RTL) if (clutter_actor_get_text_direction (actor) == CLUTTER_TEXT_DIRECTION_RTL)
{ {
child_box.x1 = content_box.x1 + sb_width; child_box.x1 = content_box.x1 + sb_width;
child_box.x2 = content_box.x2; child_box.x2 = content_box.x2;

View File

@ -224,7 +224,7 @@ st_table_homogeneous_allocate (ClutterActor *self,
gfloat col_width, row_height; gfloat col_width, row_height;
gint row_spacing, col_spacing; gint row_spacing, col_spacing;
StTablePrivate *priv = ST_TABLE (self)->priv; StTablePrivate *priv = ST_TABLE (self)->priv;
gboolean ltr = st_widget_get_direction (ST_WIDGET (self)) == ST_TEXT_DIRECTION_LTR; gboolean ltr = clutter_actor_get_text_direction (self) == CLUTTER_TEXT_DIRECTION_LTR;
ClutterActor *child; ClutterActor *child;
col_spacing = priv->col_spacing; col_spacing = priv->col_spacing;
@ -587,7 +587,7 @@ st_table_preferred_allocate (ClutterActor *self,
(int) (content_box->y2 - content_box->y1), (int) (content_box->y2 - content_box->y1),
col_widths); col_widths);
ltr = (st_widget_get_direction (ST_WIDGET (self)) == ST_TEXT_DIRECTION_LTR); ltr = (clutter_actor_get_text_direction (self) == CLUTTER_TEXT_DIRECTION_LTR);
for (child = clutter_actor_get_first_child (self); for (child = clutter_actor_get_first_child (self);
child != NULL; child != NULL;

View File

@ -65,8 +65,6 @@ struct _StWidgetPrivate
gboolean hover : 1; gboolean hover : 1;
gboolean can_focus : 1; gboolean can_focus : 1;
StTextDirection direction;
AtkObject *accessible; AtkObject *accessible;
ClutterActor *label_actor; ClutterActor *label_actor;
@ -557,7 +555,7 @@ st_widget_get_theme_node (StWidget *widget)
* direction, to allow to adapt the CSS when necessary without * direction, to allow to adapt the CSS when necessary without
* requiring separate style sheets. * requiring separate style sheets.
*/ */
if (st_widget_get_direction (widget) == ST_TEXT_DIRECTION_RTL) if (clutter_actor_get_text_direction (CLUTTER_ACTOR (widget)) == CLUTTER_TEXT_DIRECTION_RTL)
direction_pseudo_class = "rtl"; direction_pseudo_class = "rtl";
else else
direction_pseudo_class = "ltr"; direction_pseudo_class = "ltr";
@ -1499,47 +1497,6 @@ st_widget_ensure_style (StWidget *widget)
st_widget_recompute_style (widget, NULL); st_widget_recompute_style (widget, NULL);
} }
static StTextDirection default_direction = ST_TEXT_DIRECTION_LTR;
StTextDirection
st_widget_get_default_direction (void)
{
return default_direction;
}
void
st_widget_set_default_direction (StTextDirection dir)
{
g_return_if_fail (dir != ST_TEXT_DIRECTION_NONE);
default_direction = dir;
}
StTextDirection
st_widget_get_direction (StWidget *self)
{
g_return_val_if_fail (ST_IS_WIDGET (self), ST_TEXT_DIRECTION_LTR);
if (self->priv->direction != ST_TEXT_DIRECTION_NONE)
return self->priv->direction;
else
return default_direction;
}
void
st_widget_set_direction (StWidget *self, StTextDirection dir)
{
StTextDirection old_direction;
g_return_if_fail (ST_IS_WIDGET (self));
old_direction = st_widget_get_direction (self);
self->priv->direction = dir;
if (old_direction != st_widget_get_direction (self))
st_widget_style_changed (self);
}
/** /**
* st_widget_set_track_hover: * st_widget_set_track_hover:
* @widget: A #StWidget * @widget: A #StWidget

View File

@ -35,12 +35,6 @@
G_BEGIN_DECLS G_BEGIN_DECLS
typedef enum {
ST_TEXT_DIRECTION_NONE,
ST_TEXT_DIRECTION_LTR,
ST_TEXT_DIRECTION_RTL
} StTextDirection;
#define ST_TYPE_WIDGET (st_widget_get_type ()) #define ST_TYPE_WIDGET (st_widget_get_type ())
#define ST_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ST_TYPE_WIDGET, StWidget)) #define ST_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ST_TYPE_WIDGET, StWidget))
#define ST_IS_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ST_TYPE_WIDGET)) #define ST_IS_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ST_TYPE_WIDGET))
@ -129,13 +123,6 @@ gboolean st_widget_get_hover (StWidget *widg
void st_widget_ensure_style (StWidget *widget); void st_widget_ensure_style (StWidget *widget);
StTextDirection st_widget_get_default_direction (void);
void st_widget_set_default_direction (StTextDirection dir);
StTextDirection st_widget_get_direction (StWidget *self);
void st_widget_set_direction (StWidget *self,
StTextDirection dir);
void st_widget_set_can_focus (StWidget *widget, void st_widget_set_can_focus (StWidget *widget,
gboolean can_focus); gboolean can_focus);
gboolean st_widget_get_can_focus (StWidget *widget); gboolean st_widget_get_can_focus (StWidget *widget);