Changeset 28093 in webkit
- Timestamp:
- Nov 27, 2007 5:12:22 PM (16 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r28085 r28093 1 2007-11-27 Timothy Hatcher <timothy@apple.com> 2 3 Reviewed by Sam Weinig. 4 5 Bug 16165: Dragging the inspector toolbar should move the window 6 http://bugs.webkit.org/show_bug.cgi?id=16165 7 8 * page/inspector/DocumentPanel.js: Call the new drag functions, and cleanup code. 9 * page/inspector/inspector.css: Only make the toolbar transparent in detached mode. 10 * page/inspector/inspector.js: Call the new drag functions, and cleanup code. Add 11 toolbar drag functions that move the window. 12 1 13 2007-11-27 Antti Koivisto <antti@apple.com> 2 14 -
trunk/WebCore/page/inspector/DocumentPanel.js
r28002 r28093 699 699 rightSidebarResizerDragStart: function(event) 700 700 { 701 var panel = this; 702 WebInspector.dividerDragStart(this.views.dom.sidebarElement, function(event) { panel.rightSidebarResizerDrag(event) }, function(event) { panel.rightSidebarResizerDragEnd(event) }, event, "col-resize"); 701 if (this.sidebarDragEventListener || this.sidebarDragEndEventListener) 702 return this.rightSidebarResizerDragEnd(event); 703 704 this.sidebarDragEventListener = this.rightSidebarResizerDrag.bind(this); 705 this.sidebarDragEndEventListener = this.rightSidebarResizerDragEnd.bind(this); 706 WebInspector.elementDragStart(this.views.dom.sidebarElement, this.sidebarDragEventListener, this.sidebarDragEndEventListener, event, "col-resize"); 703 707 }, 704 708 705 709 rightSidebarResizerDragEnd: function(event) 706 710 { 707 var panel = this; 708 WebInspector.dividerDragEnd(this.views.dom.sidebarElement, function(event) { panel.rightSidebarResizerDrag(event) }, function(event) { panel.rightSidebarResizerDragEnd(event) }, event); 711 WebInspector.elementDragEnd(this.views.dom.sidebarElement, this.sidebarDragEventListener, this.sidebarDragEndEventListener, event); 712 delete this.sidebarDragEventListener; 713 delete this.sidebarDragEndEventListener; 709 714 }, 710 715 711 716 rightSidebarResizerDrag: function(event) 712 717 { 713 var rightSidebar = this.views.dom.sidebarElement; 714 if (rightSidebar.dragging == true) { 715 var x = event.clientX + window.scrollX; 716 717 var leftSidebarWidth = window.getComputedStyle(document.getElementById("sidebar")).getPropertyCSSValue("width").getFloatValue(CSSPrimitiveValue.CSS_PX); 718 var newWidth = Number.constrain(window.innerWidth - x, 100, window.innerWidth - leftSidebarWidth - 100); 719 720 if (x == newWidth) 721 rightSidebar.dragLastX = x; 722 723 rightSidebar.style.width = newWidth + "px"; 724 this.views.dom.sideContentElement.style.right = newWidth + "px"; 725 this.views.dom.sidebarResizeElement.style.right = (newWidth - 3) + "px"; 726 727 this.updateTreeSelection(); 728 this.updateBreadcrumbSizes(); 729 730 event.preventDefault(); 731 } 718 var x = event.pageX; 719 720 var leftSidebarWidth = document.getElementById("sidebar").offsetWidth; 721 var newWidth = Number.constrain(window.innerWidth - x, 100, window.innerWidth - leftSidebarWidth - 100); 722 723 this.views.dom.sidebarElement.style.width = newWidth + "px"; 724 this.views.dom.sideContentElement.style.right = newWidth + "px"; 725 this.views.dom.sidebarResizeElement.style.right = (newWidth - 3) + "px"; 726 727 this.updateTreeSelection(); 728 this.updateBreadcrumbSizes(); 729 730 event.preventDefault(); 732 731 } 733 732 } -
trunk/WebCore/page/inspector/inspector.css
r28075 r28093 69 69 } 70 70 71 .platform-mac-leopard #toolbar {71 body.detached.platform-mac-leopard #toolbar { 72 72 background: transparent !important; 73 73 } -
trunk/WebCore/page/inspector/inspector.js
r28039 r28093 224 224 WebInspector.loaded = function() 225 225 { 226 document.body.addStyleClass("platform-" + InspectorController.platform()); 226 var platform = InspectorController.platform(); 227 document.body.addStyleClass("platform-" + platform); 227 228 228 229 this.fileOutline = new TreeOutline(document.getElementById("list")); … … 286 287 document.getElementById("sidebarResizer").addEventListener("mousedown", this.sidebarResizerDragStart, true); 287 288 document.getElementById("searchResultsResizer").addEventListener("mousedown", this.searchResultsResizerDragStart, true); 289 290 if (platform === "mac-leopard") 291 document.getElementById("toolbar").addEventListener("mousedown", this.toolbarDragStart, true); 288 292 289 293 document.body.addStyleClass("detached"); … … 541 545 } 542 546 547 WebInspector.toolbarDragStart = function(event) 548 { 549 var toolbar = document.getElementById("toolbar"); 550 if (event.target !== toolbar || WebInspector.attached) 551 return; 552 553 toolbar.lastScreenX = event.screenX; 554 toolbar.lastScreenY = event.screenY; 555 556 document.addEventListener("mousemove", WebInspector.toolbarDrag, true); 557 document.addEventListener("mouseup", WebInspector.toolbarDragEnd, true); 558 document.body.style.cursor = "default"; 559 560 event.preventDefault(); 561 } 562 563 WebInspector.toolbarDragEnd = function(event) 564 { 565 var toolbar = document.getElementById("toolbar"); 566 delete toolbar.lastScreenX; 567 delete toolbar.lastScreenY; 568 569 document.removeEventListener("mousemove", WebInspector.toolbarDrag, true); 570 document.removeEventListener("mouseup", WebInspector.toolbarDragEnd, true); 571 document.body.style.removeProperty("cursor"); 572 573 event.preventDefault(); 574 } 575 576 WebInspector.toolbarDrag = function(event) 577 { 578 var toolbar = document.getElementById("toolbar"); 579 580 var x = event.screenX - toolbar.lastScreenX; 581 var y = event.screenY - toolbar.lastScreenY; 582 583 toolbar.lastScreenX = event.screenX; 584 toolbar.lastScreenY = event.screenY; 585 586 window.moveBy(x, y); 587 588 event.preventDefault(); 589 } 590 543 591 WebInspector.sidebarResizerDragStart = function(event) 544 592 { 545 WebInspector. dividerDragStart(document.getElementById("sidebar"), WebInspector.sidebarResizerDrag, WebInspector.sidebarResizerDragEnd, event, "col-resize");593 WebInspector.elementDragStart(document.getElementById("sidebar"), WebInspector.sidebarResizerDrag, WebInspector.sidebarResizerDragEnd, event, "col-resize"); 546 594 } 547 595 548 596 WebInspector.sidebarResizerDragEnd = function(event) 549 597 { 550 WebInspector. dividerDragEnd(document.getElementById("sidebar"), WebInspector.sidebarResizerDrag, WebInspector.sidebarResizerDragEnd, event);598 WebInspector.elementDragEnd(document.getElementById("sidebar"), WebInspector.sidebarResizerDrag, WebInspector.sidebarResizerDragEnd, event); 551 599 } 552 600 553 601 WebInspector.sidebarResizerDrag = function(event) 554 602 { 555 var sidebar = document.getElementById("sidebar"); 556 if (sidebar.dragging == true) { 557 var x = event.clientX + window.scrollX; 558 559 // FIXME: We can should come up with a better hueristic for constraining the size 560 // of the sidebar. 561 var newWidth = Number.constrain(x, 100, window.innerWidth - 100); 562 563 if (x == newWidth) 564 sidebar.dragLastX = x; 565 566 sidebar.style.width = newWidth + "px"; 567 document.getElementById("sidebarResizer").style.left = (newWidth - 3) + "px"; 568 document.getElementById("main").style.left = newWidth + "px"; 569 document.getElementById("toolbarButtons").style.left = newWidth + "px"; 570 571 if (WebInspector.currentPanel && WebInspector.currentPanel.resize) 572 WebInspector.currentPanel.resize(); 573 574 event.preventDefault(); 575 } 603 var x = event.pageX; 604 605 // FIXME: We can should come up with a better hueristic for constraining the size of the sidebar. 606 var newWidth = Number.constrain(x, 100, window.innerWidth - 100); 607 608 document.getElementById("sidebar").style.width = newWidth + "px"; 609 document.getElementById("sidebarResizer").style.left = (newWidth - 3) + "px"; 610 document.getElementById("main").style.left = newWidth + "px"; 611 document.getElementById("toolbarButtons").style.left = newWidth + "px"; 612 613 if (WebInspector.currentPanel && WebInspector.currentPanel.resize) 614 WebInspector.currentPanel.resize(); 615 616 event.preventDefault(); 576 617 } 577 618 578 619 WebInspector.searchResultsResizerDragStart = function(event) 579 620 { 580 WebInspector. dividerDragStart(document.getElementById("searchResults"), WebInspector.searchResultsResizerDrag, WebInspector.searchResultsResizerDragEnd, event, "row-resize");621 WebInspector.elementDragStart(document.getElementById("searchResults"), WebInspector.searchResultsResizerDrag, WebInspector.searchResultsResizerDragEnd, event, "row-resize"); 581 622 } 582 623 583 624 WebInspector.searchResultsResizerDragEnd = function(event) 584 625 { 585 WebInspector. dividerDragEnd(document.getElementById("searchResults"), WebInspector.searchResultsResizerDrag, WebInspector.searchResultsResizerDragEnd, event);626 WebInspector.elementDragEnd(document.getElementById("searchResults"), WebInspector.searchResultsResizerDrag, WebInspector.searchResultsResizerDragEnd, event); 586 627 } 587 628 588 629 WebInspector.searchResultsResizerDrag = function(event) 589 630 { 590 var searchResults = document.getElementById("searchResults"); 591 if (searchResults.dragging == true) { 592 var y = event.clientY - document.getElementById("main").offsetTop; 593 var newHeight = Number.constrain(y, 100, window.innerHeight - 100); 594 595 if (y == newHeight) 596 searchResults.dragLastY = y; 597 598 WebInspector.searchResultsHeight = newHeight; 599 searchResults.style.height = WebInspector.searchResultsHeight + "px"; 600 document.getElementById("panels").style.top = newHeight + "px"; 601 document.getElementById("searchResultsResizer").style.top = (newHeight - 3) + "px"; 602 event.preventDefault(); 603 } 604 } 605 606 WebInspector.dividerDragStart = function(element, dividerDrag, dividerDragEnd, event, cursor) 607 { 608 element.dragging = true; 609 element.dragLastY = event.clientY + window.scrollY; 610 element.dragLastX = event.clientX + window.scrollX; 631 var y = event.pageY - document.getElementById("main").offsetTop; 632 var newHeight = Number.constrain(y, 100, window.innerHeight - 100); 633 634 WebInspector.searchResultsHeight = newHeight; 635 636 document.getElementById("searchResults").style.height = WebInspector.searchResultsHeight + "px"; 637 document.getElementById("panels").style.top = newHeight + "px"; 638 document.getElementById("searchResultsResizer").style.top = (newHeight - 3) + "px"; 639 640 event.preventDefault(); 641 } 642 643 WebInspector.elementDragStart = function(element, dividerDrag, elementDragEnd, event, cursor) 644 { 645 if (WebInspector.draggingElement) 646 return elementDragEnd(event); 647 648 WebInspector.draggingElement = true; 649 611 650 document.addEventListener("mousemove", dividerDrag, true); 612 document.addEventListener("mouseup", dividerDragEnd, true);651 document.addEventListener("mouseup", elementDragEnd, true); 613 652 document.body.style.cursor = cursor; 653 614 654 event.preventDefault(); 615 655 } 616 656 617 WebInspector.dividerDragEnd = function(element, dividerDrag, dividerDragEnd, event) 618 { 619 element.dragging = false; 657 WebInspector.elementDragEnd = function(element, dividerDrag, elementDragEnd, event) 658 { 620 659 document.removeEventListener("mousemove", dividerDrag, true); 621 document.removeEventListener("mouseup", dividerDragEnd, true);660 document.removeEventListener("mouseup", elementDragEnd, true); 622 661 document.body.style.removeProperty("cursor"); 662 663 delete WebInspector.draggingElement; 664 665 event.preventDefault(); 623 666 } 624 667
Note: See TracChangeset
for help on using the changeset viewer.