Skip to content

Commit 6f69417

Browse files
committed
fix(window): pin/unpin icons are swapped in Window component telerik/kendo#7059
1 parent b437101 commit 6f69417

File tree

3 files changed

+28
-23
lines changed

3 files changed

+28
-23
lines changed

src/kendo.window.js

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -152,10 +152,6 @@
152152

153153
that._position();
154154

155-
if (options.pinned) {
156-
that.pin(true);
157-
}
158-
159155
if (content) {
160156
that.refresh(content);
161157
}
@@ -185,6 +181,10 @@
185181

186182
this._draggable();
187183

184+
if (options.pinned) {
185+
that.pin();
186+
}
187+
188188
id = element.attr("id");
189189
if (id) {
190190
id = id + "_wnd_title";
@@ -365,12 +365,15 @@
365365
},
366366

367367
_actions: function() {
368-
var actions = this.options.actions;
368+
var options = this.options;
369+
var actions = options.actions;
370+
var pinned = options.pinned;
369371
var titlebar = this.wrapper.children(KWINDOWTITLEBAR);
370372
var container = titlebar.find(".k-window-actions");
371373
var windowSpecificCommands = [ "maximize", "minimize" ];
372374

373375
actions = $.map(actions, function(action) {
376+
action = !pinned && action.toLowerCase() === "pin" ? "unpin" : action;
374377
return { name: (windowSpecificCommands.indexOf(action.toLowerCase()) > - 1) ? "window-" + action : action };
375378
});
376379

@@ -544,8 +547,8 @@
544547
"k-i-window-minimize": "minimize",
545548
"k-i-window-restore": "restore",
546549
"k-i-refresh": "refresh",
547-
"k-i-pin": "pin",
548-
"k-i-unpin": "unpin"
550+
"k-i-pin": "unpin",
551+
"k-i-unpin": "pin"
549552
}[iconClass];
550553
},
551554

@@ -1058,18 +1061,19 @@
10581061
return this.options.isMinimized;
10591062
},
10601063

1061-
pin: function(force) {
1064+
pin: function() {
10621065
var that = this,
10631066
win = $(window),
10641067
wrapper = that.wrapper,
10651068
top = parseInt(wrapper.css("top"), 10),
10661069
left = parseInt(wrapper.css("left"), 10);
10671070

1068-
if (force || !that.options.pinned && !that.options.isMaximized) {
1071+
if (!that.options.isMaximized) {
10691072
wrapper.css({position: "fixed", top: top - win.scrollTop(), left: left - win.scrollLeft()});
1070-
wrapper.children(KWINDOWTITLEBAR).find(KPIN).addClass("k-i-unpin").removeClass("k-i-pin");
1073+
wrapper.children(KWINDOWTITLEBAR).find(KUNPIN).addClass("k-i-pin").removeClass("k-i-unpin");
10711074

10721075
that.options.pinned = true;
1076+
that.options.draggable = false;
10731077
}
10741078
},
10751079

@@ -1080,11 +1084,12 @@
10801084
top = parseInt(wrapper.css("top"), 10),
10811085
left = parseInt(wrapper.css("left"), 10);
10821086

1083-
if (that.options.pinned && !that.options.isMaximized) {
1087+
if (!that.options.isMaximized) {
10841088
wrapper.css({position: "", top: top + win.scrollTop(), left: left + win.scrollLeft()});
1085-
wrapper.children(KWINDOWTITLEBAR).find(KUNPIN).addClass("k-i-pin").removeClass("k-i-unpin");
1089+
wrapper.children(KWINDOWTITLEBAR).find(KPIN).addClass("k-i-unpin").removeClass("k-i-pin");
10861090

10871091
that.options.pinned = false;
1092+
that.options.draggable = true;
10881093
}
10891094
},
10901095

@@ -1483,7 +1488,7 @@
14831488
actions = element.find(".k-window-actions"),
14841489
containerOffset = kendo.getOffset(wnd.appendTo);
14851490

1486-
this._preventDragging = wnd.trigger(DRAGSTART);
1491+
this._preventDragging = wnd.trigger(DRAGSTART) || !wnd.options.draggable;
14871492
if (this._preventDragging) {
14881493
return;
14891494
}

tests/window/api.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -546,13 +546,13 @@
546546
actions: ["Pin"]
547547
});
548548

549-
equal(dialog.wrapper.find(".k-i-pin").length, 1);
550-
equal(dialog.wrapper.find(".k-i-unpin").length, 0);
549+
equal(dialog.wrapper.find(".k-i-unpin").length, 1);
550+
equal(dialog.wrapper.find(".k-i-pin").length, 0);
551551

552552
dialog.pin();
553553

554-
equal(dialog.wrapper.find(".k-i-unpin").length, 1);
555-
equal(dialog.wrapper.find(".k-i-pin").length, 0);
554+
equal(dialog.wrapper.find(".k-i-pin").length, 1);
555+
equal(dialog.wrapper.find(".k-i-unpin").length, 0);
556556
});
557557

558558
test("pin() substracts the browser scroll position from the wrapper's top and left styles", function() {
@@ -604,13 +604,13 @@
604604
pinned: true
605605
});
606606

607-
equal(dialog.wrapper.find(".k-i-unpin").length, 1);
608-
equal(dialog.wrapper.find(".k-i-pin").length, 0);
607+
equal(dialog.wrapper.find(".k-i-pin").length, 1);
608+
equal(dialog.wrapper.find(".k-i-unpin").length, 0);
609609

610610
dialog.unpin();
611611

612-
equal(dialog.wrapper.find(".k-i-pin").length, 1);
613-
equal(dialog.wrapper.find(".k-i-unpin").length, 0);
612+
equal(dialog.wrapper.find(".k-i-unpin").length, 1);
613+
equal(dialog.wrapper.find(".k-i-pin").length, 0);
614614
});
615615

616616
test("unpin() adds the browser scroll position to the wrapper's top and left styles", function() {
@@ -777,7 +777,7 @@
777777
dialog.maximize();
778778
dialog.restore();
779779

780-
equal(dialog.wrapper.find(".k-i-pin:visible").length, 1);
780+
equal(dialog.wrapper.find(".k-i-unpin:visible").length, 1);
781781
});
782782

783783
test("restore() removes the k-window-maximized class", function() {

tests/window/initialization.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,7 @@
420420

421421
test("creating pinned window with a Pin command adds an Unpin button", function() {
422422
var dialog = createWindow({ pinned: true, actions: ["Pin"] });
423-
equal(dialog.wrapper.find(".k-i-unpin").length, 1);
423+
equal(dialog.wrapper.find(".k-i-pin").length, 1);
424424
});
425425

426426
test("creating window with an int zero top position applies a top style", function() {

0 commit comments

Comments
 (0)